Способен ли php делать то, что я хочу? - PullRequest
4 голосов
/ 04 июня 2010

Я работаю над веб-приложением по биологии и пытаюсь выяснить, какой язык использовать. Функции, которые мне нужно включить:

  • Рамка просмотра изображения - в этой области будет отображаться текущее изображение, которое хотят видеть биологи. Приложение должно взять ряд координат из файла и нарисовать эти точки на изображении, показанном здесь. Когда биолог хочет изменить изображения, не должно быть мерцания от обновления. Возможно, это будет сделано с использованием нескольких буферов изображений. Контент должен быть прокручиваемым и иметь возможность масштабирования.
  • Там должны быть помечены кнопки, которые перемещают, отступают, масштабируют и воспроизводят изображения, отображаемые в рамке изображения. Также должен быть какой-то вид списка, в котором можно выбрать заголовки изображений для отображения.
  • На сервере будет куча папок с изображениями, которые можно выбрать. Приложение должно позволять пользователю выбирать, какую папку изображений загружать. Он также должен иметь возможность считывать файлы в формате txt или xml и визуально отображать там информацию в виде линейного графика.
  • Хотел бы иметь возможность запускать скрипты на сервере из приложения.

Мне кажется, что все эти вещи можно реализовать с помощью веб-приложения, но я не знаю, какой язык использовать. Большинство людей рекомендуют php, но я не хочу углубляться, пока не узнаю, каковы его ограничения. Любые предложения приветствуются. Заранее спасибо.

-Mike

Ответы [ 7 ]

8 голосов
/ 04 июня 2010

PHP может сделать все, что вам нужно для серверной части, но большая часть того, что вы описываете, основана на пользовательском интерфейсе, и это зависит от клиента, который, конечно, является браузером. Для графических проектов вы можете многое сделать в JavaScript, и некоторые библиотеки JavaScript имеют множество встроенных этих возможностей. Вы также можете рассмотреть Flash или Flex.

Вы могли бы даже рассмотреть настольное приложение, которое работает вне браузера. Вы можете использовать Java, которая проста в развертывании, но все же требует, чтобы у пользователя был Java Runtime Engine, или вы могли бы использовать язык, который можно скомпилировать в собственное приложение.

Независимо от выбранной вами технологии внешнего интерфейса, вам все равно понадобится серверная часть, и PHP справится с этим.

5 голосов
/ 04 июня 2010

Вы найдете, что почти все серверные платформы, такие как php, asp.net, asp и т. Д., Будут выполнять все вышеперечисленное.

4 голосов
/ 04 июня 2010

PHP - это язык, который находится на сервере и обрабатывает все запросы. Javascript (и связанные библиотеки) - это язык, который выполняется браузером клиента и обрабатывает (почти) все взаимодействие. PHP определенно может делать то, что вы хотите, но для взаимодействия (в частности, масштабирования, прокрутки и т. Д.) Вам также необходимо использовать Javascript.

Итак, короткий ответ, PHP хорош, но вам также понадобится использовать скрипты на стороне клиента.

1 голос
/ 04 июня 2010

Исходя из ваших опасений по поводу обновления / мерцания изображения, оно действительно похоже на то, что вы ищете настольное приложение для быстрого реагирования на изменения изображения. Кажется, что требования к этому действительно должны быть лучше определены, прежде чем вы сможете выбрать язык ... PHP может делать все, что вы упомянули на стороне сервера, но вам может быть труднее получить «рамку» просмотра изображения для обеспечения функциональности. ты хочешь.

1 голос
/ 04 июня 2010

PHP более чем способен сделать это.Вам нужно будет использовать его в сочетании с некоторым Javascript для обработки описанных вами побочных эффектов клиента.Я бы посмотрел на модификацию galerific для ваших нужд, а затем подхватил немного javascript для записи точек на изображениях.

0 голосов
/ 05 июня 2010

Рамка просмотра изображения

Скорее всего, это нужно будет выполнить на стороне клиента, используя такие инструменты / фреймворки, как jQuery, элемент canvas, silverlight или любые другие 100, которые существуют.

Там должны быть помечены кнопки, которые перемещают, отступают, масштабируют и воспроизводят изображения, отображаемые в рамке изображения. Также должен быть какой-то вид списка, в котором можно выбрать заголовки изображений для отображения.

PHP или любой другой серверный язык сценариев могли бы справиться с этим. Если это быстрый проект, работающий на бесплатном / дешевом оборудовании, то PHP будет хорошим выбором. Если план представляет собой большое приложение, которое необходимо обслуживать в течение многих лет, и хостинг / цена не являются проблемой, я бы предложил что-то вроде ASP.NET

На сервере будет множество папок с изображениями, которые можно выбрать. Приложение должно позволять пользователю выбирать, какую папку изображений загружать. Он также должен иметь возможность считывать файлы в формате txt или xml и визуально отображать там информацию в виде линейного графика.

Опять же, любой язык на стороне сервера может сделать часть списка папок. Что касается чтения файлов и создания графиков, то это, скорее всего, будет сочетание программирования на стороне сервера и на стороне клиента. Например, в jQuery есть плагины, которые могут легко взять XML-файл и создать линейный график.

Хотелось бы иметь возможность запускать сценарии на сервере из приложения.

PHP, ASP.NET - оба могут сделать это. Я уверен, что многие другие могли бы, но это те, которые я использую чаще всего

Проблема с PHP заключается в том, что довольно часто код со временем превращается в беспорядок. Возможно, это не столько проблема с языком, сколько люди, использующие его, и цель, для которой было создано приложение (быстрый одноразовый проект). Классический ASP также имеет те же проблемы. ASP.NET - это хорошая комбинация ООП-программирования, позволяющая отделить представление от логики с минимальными усилиями.

0 голосов
/ 04 июня 2010

Из-за требований к манипулированию изображениями может быть проще использовать что-то вроде flash с php backend или asp.net с silverlight. Может быть трудно предотвратить мерцание и задержки с использованием чистого javascript, а не flash / silverlight.

...