Лучший веб-фреймворк высокого уровня, предпочитаемый PHP - PullRequest
8 голосов
/ 09 сентября 2010

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

Я смотрел на такие инструменты, как Symfony и CakePHP.Проблема в том, что кажется, что они относительно низкого уровня для современного приложения Web 2.0.Они обрабатывают базовые вещи, такие как MVC и строительные леса, но не более сложные элементы пользовательского интерфейса, которые я ищу.Вот некоторые из моих требований:

  • Одностраничная архитектура.За небольшими исключениями не должно быть обновления страницы.Все действия выполняются через ajax, как в gmail и, в меньшей степени, в Facebook.
  • Макет Ajax и обработка виджетов.Не только приложение не обновляет страницу, но и разработчик может указать макет и загрузить различные виджеты в разные части страницы.Это похоже на iGoogle, но должно быть лучше интегрировано.
  • Поддержка как на стороне клиента, так и на стороне сервера для виджетов AJAX.Отображение результата оператора select в таблице / массиве AJAX, например http://developer.yahoo.com/yui/datatable/., должно быть тривиальным. Это также относится к другим виджетам, включая
    • Деревья
    • Меню
    • Формы
  • Говоря о формах, должна быть простая интеграция с на стороне клиента проверка
  • Регистрация / Аутентификация / Авторизация.Включая все домашние вещи, такие как забытый пароль, капчи и т. Д.

Это еще не все, но я думаю, что дал достаточно подробностей, чтобы вы поняли, что я ищу.По сути, я хотел бы разработать современное приложение Web 2.0 и пропустить написание, тестирование, отладку того, что требуется большинству веб-приложений.И да, я знаю, что могу взять YUI или jQuery и поставить их поверх одной из обычных платформ, но тогда мне придется написать весь клей.Теперь, если есть модули, которые делают это, это было бы интересно.Поэтому, если вы скажете, возьмите модули Symfony + xyz + jQuery и получите ваш ответ, я буду рад это услышать.

Наконец, с точки зрения приоритета, я ищу что-то масштабируемое, надежное,хорошо спроектировано больше, чем то, что легко изучить и развернуть.

Ответы [ 11 ]

2 голосов
/ 09 сентября 2010

Если вы не возражаете против использования Java, есть ZK:

http://www.zkoss.org/

Я бы предпочел использовать это вместо GWT.

2 голосов
/ 12 июня 2012

В php вы можете рассмотреть Cjax http://cjax.sourceforge.net/.

Он ориентирован на MVC и имеет очень общий API, с полной поддержкой настройки, включая разработку плагинов (есть полный плагин)Доступен API, включая документацию, плагины могут быть встроены в PHP и JavaScript в комбинации - см. «Загрузка и проверка плагинов»).

Он может получить доступ ко всем функциям JavaScript, объектам и свойствам, а также свойствам и функциям элементов со стороны сервера PHP с помощью одной строки кода.

В Cjax

вы можете выполнять действия ajax внутри контроллеров (запросы ajax) - без строки JavaScript.это позволяет вам полностью функционировать без обновления страницы.Это также позволяет вам получить доступ ко всем объектам Js из PHP.Хорошим примером, который отражает это, является «рекурсивный запрос ajax», см. Эту демонстрацию.API можно использовать при загрузке страницы, при первой загрузке страницы и в рамках каждого отдельного запроса AJAX.

Обязательно посмотрите документацию и более 20 включенных демонстраций, и нигде не увидитеодна строка JavaScript.Он позволяет вам манипулировать элементами, контейнерами, запрашивать ajax, отправлять формы ajax, создавать оверлеи, загружать файлы через ajax, все со стороны сервера.Взгляните на таблицу API.

Имеет поддержку как на стороне сервера, так и на стороне клиента (см. Плагин JavaScript Документация)

Хорошо работает с jQuery - плагином проверки вjquery полностью исполняемый в PHP без строки JavaScript (см. http://cjax.sourceforge.net/examples/plugin_validate.php без какой-либо пользовательской строки Jquery внутри фреймворка, это все работа плагина).Ответы Ajax от Jquery также автоматически обрабатываются этой платформой, поэтому использование API-функций Jjery Ajax точно так же, как если бы вы использовали функции Ajax JavaScript подключаемого модуля платформы.

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

В настоящее время есть два официальных релиза, общий выпуск и официальный выпуск для CodeIgnater этой платформы(и это ведущая опция ajax для codeignater), и прекрасно работает в сочетании с другими фреймворками PHP и без них.

Регистрация / Аутентификация / Авторизация.Включая все служебные вещи, такие как забыл мой пароль, CAPTCHA и т. Д.

Это то, что вы можете построить в контроллере AJAX, сама платформа должна быть универсальной структурой AJAX, поэтомуесли вы не ищете ни одной функции ajax, вам нужно будет создать их или интегрировать другие PHP Framework с Cjax (например, Codeignater).

2 голосов
/ 09 сентября 2010

Я согласен с @Iznogood. То, что вы ищете, на самом деле не фреймворк, а талант. Вы можете сделать любой фреймворк как "igoogle-ish", если знаете, что делаете.

Я предлагаю поискать фреймворк с огромным и активным сообществом, таким как CI, Cake и Jquery. Поиск / спросить сообщество для конкретных вещей, которые вам нужны. Подключите его и Presto!

Но, боюсь, вам придется написать кое-что из этого.

2 голосов
/ 09 сентября 2010

Поскольку вы ищете все для AJAX, почему бы не попробовать GWT? Я не согласен с PHP, но он облегчает написание AJAX-приложений для разработчиков.

1 голос
/ 09 сентября 2010

Я не знаю, соответствует ли это всем вашим критериям или вы когда-нибудь найдете такой.Однако мне самому нравится Zend Framework .

0 голосов
/ 10 сентября 2010

Посмотрите на Ext JS , это довольно хорошо.Если это коммерческий проект, то вы делаете это не бесплатно, но и не слишком дорого.Он также имеет версию GWT, если вы предпочитаете это.Это только для внешнего интерфейса, но это не слишком сложно, чтобы использовать любой бэкэнд, который может излучать JSON.

0 голосов
/ 10 сентября 2010

Зависит от того, на какой уровень вы смотрите.Если под «структурой» вы подразумеваете что-то вроде Zend или Symphony, то, честно говоря, все большие такие же хорошие, как и другие.Все они имеют свои сильные и слабые стороны, но ни один из них не соответствует вашим критериям.

Но ваш вопрос подразумевает, что вы ищете что-то большее, чем такие рамки.Может быть, вы ищете полнофункциональную платформу CMS, такую ​​как Drupal, Joomla или Wordpress?

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

Drupal, например, имеет массу модулей, очень мощен и прост в написании ваших собственных модулей, но не объектно-ориентирован и не выполняет MVC, так что если это ваша сумка, то вам может быть сложноужиться с.Wordpress намного легче начать работать, но он становится менее гибким, когда вы начинаете углубляться в него.

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

0 голосов
/ 10 сентября 2010

Для внешней части вашего приложения вы можете взглянуть на SproutCore (http://www.sproutcore.com/). Создание веб-приложения с SproutCore больше похоже на настройку компонентов, чем на написание кода. Там нет клеевого кода. На бэкэнде все, что вам нужно сделать, это принять и выдать JSON.

0 голосов
/ 09 сентября 2010

Я бы порекомендовал PHP-фреймворк Symfony, поскольку он очень хорошо поддерживает все функции, о которых вы упомянули, и его можно легко интегрировать с Zend Framework - начиная с версии 2.0, которая выйдет в этом году, он будет интегрирован в пакет. Вы можете легко настроить symfony для обработки запросов AJAX, чтобы он был идеальным сервером для обработки прозрачных слоев.

Для меня, если вы посмотрите на ЭТО тяжелый AJAX, я бы порекомендовал поискать какую-то хорошую инфраструктуру JavaScript, такую ​​как Ext.JS, которая бы выполняла все функции на стороне клиента.

0 голосов
/ 09 сентября 2010

Что касается UI и AJAX-частей - технология на стороне сервера мало что значит, и больше касается технологии на стороне браузера и механизмов взаимодействия, а также манипулирования DOM.

jQuery мой любимый для этого. Что касается серверной части PHP, я склонен разрабатывать ее с моей собственной кодовой базой, которая росла со мной на протяжении многих лет.

Но все это требует много практики, знаний, образования, исследований, чтения и публикации вопросов на StackOverflow.com;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...