Не так давно я задавал вопрос относительно выбора PHP-фреймворка из множества ныне существующих… Отзывы послушал… Кое-что почитал по самим фреймворкам… В итоге для себя я выбрал Symfony (пусть тормозная, но вы часто делаете сайты с количеством посетителей от 10 000 в день?). Почему - вопрос сложный и, наверное, я сам до конца не знаю ответа на него… Хотя одну из основных причин могу сказать - это модель, а именно Propel/Doctrine. Это единственные на данный момент ORM’ы с которыми мне реально нравится работать, разработчики которых понимают отличия функциональности уровня таблицы и уровня записи и т.д. (может есть еще хорошие ORM’ы, но я с ними просто незнаком :)) Да, кстати, я сейчас использую Symfony по работе, за что огромное спасибо Любомиру, моему “шефу”. :)
Но сейчас я хотел бы поговорить не об этом… Есть одна “маленькая” идея - затеять сравнение фреймворков друг с другом. По каким критериям сравнивать - вопрос довольно сложный, я составил следующий список:
- Controller
- Model
- View
- наличие/удобство хелперов
- взаимодействие с JS/AJAX
- работа с формами (сейчас с этим в Symfony, кстати, достаточно большие проблемы)
- …
Пунктов, я думаю, с вашей помощью добавится еще с десяток. Так что жду предложений.
Следующий вопрос - список фреймворков. Опять же, мой список пока что состоит из таких претендентов:
- Kohana (или всё же CodeIgniter)
- CakePHP
- Symfony
- Zend Framework
- …
Писать хочу в виде “один пост рассматривает все фреймворки по одному критерию”. Т.е., например, через две недели будет опубликовано сравнение моделей в выбранных фреймворках - возможности, удобства, недостатки, пожелания относительно улучшения и т.д.
Теперь я подошел к самому главному - хотелось бы попробовать устроить действительно коллективную работу… Никто не хочет помочь мне в этом деле? Я вот лично могу на себя взять Symfony и (хотя и не хочется) Kohana. Никто не хочет написать про CakePHP или про <вставьте сюда название вашего любимого фреймворка>? На каждый пост будет отводится, скажем, неделя-две. После этого кто-то (думаю я, если кто-то захочет помочь - пишите) скомпонует все посты в одно сравнение, сделает выводы…
Первым критерием для сравнения предлагаю сделать Controller и всё что с ним связано (routes, dispatchers и т.д.). Если меня кто-то поддержит - жду ваши тексты до 1-го февраля. И 3-го будет первый пост по сравнению фреймворков.






January 21st, 2008 at 14:20
Я могу помочь, но скорее не готовым текстом, а мыслями.
Кстати, я когда-то составлял табличку:
http://rmcreative.ru/playground/php-frameworks/
Чуть обновил.
January 21st, 2008 at 17:22
табличка несколько неточна
мог бы Сodeigniter взять( после некоторых раздумий всё же вернулся от коханы к нему)
January 21st, 2008 at 17:33
Поправки в табличку приветствуются. Можно и в асю: 214–897–008.
> после некоторых раздумий всё же вернулся от коханы к нему
Документация + скорость?
January 21st, 2008 at 17:40
Документация + скорость?
и ещё то что за CI cтоит организация а не коммюнити (хотя плюс это или мину вопрос конечно спорный)
January 21st, 2008 at 18:01
Ещё немного обновил табличку.
January 21st, 2008 at 21:49
В табличке неточности :) Смотри асю :)
Миша, ты можешь не сильно большой текстик за недельку по Controller в CI накатать?
January 21st, 2008 at 22:01
Ок. Договорились
January 22nd, 2008 at 11:25
Почему бы тебе не попробовать ROR? Почему так категорично — php?
P. S. Замусолили Mac-тему для WP. ((
January 22nd, 2008 at 11:41
Эмм. Да работаю я на PHP. В том и проблемы. :)
А насчет ROR – мне Django больше по душе. Т.к. питон учил всё-таки.
January 22nd, 2008 at 11:43
Ruby достаточно простой язык. А ROR славен тем, что у него, ну просто глобальная реляция объектов. Замена поля в базе данных, фактически перепишет весь движок, подстраивая под проект. Ну это так… abstracts…
January 22nd, 2008 at 11:49
Эмм.. Лично мне синтаксис руби на первый взгляд показался достаточно сложным… Да и времени нет ROR учить… Мне еще .NET учить по работе нужно будет…
January 22nd, 2008 at 12:27
Ну, можно и с RoR сравнить. Только нужен не фанатичный поклонник, который при этом разбирается.
January 28th, 2008 at 19:49
угу, нежен фанатичный поклонник
January 30th, 2008 at 02:49
Идея хорошая … обзор фреймвёрков нужен! Однозначно! Я сам когда-то хотел сделать, что-то подобное. Рад что такие же мысли роятся у кого-то в голове кроме меня.
Насчёт Ruby не согласен … синтаксис не сложен, а лоялен к программисту. Синтаксис руби может быть сложен для человека поддерживающего синтаксический анализатор …
Как писал Хэл Фултон … “Позвольте языку оставаться самим собой и не надо делать из него тот язык к которому вы привыкли” и тогда всё станет на свои места.
Относительно помощи … могу помочь с PHP Frameworks: Prado 3.1.1, Symfony, Picora, PHPOpenBiz(сильно в него не вникал, но знаком и кое-что делал в тестовых целях).
Ruby: ROR – обзорно, только учу … возможно будущий фанатик, но пока таковым не являюсь ;-)
Java: Hibernate – тоже в процессе, кстати Propel с него слизан.
По поводу ORM – фишка хорошая, но для моей работы бестолковая, так как приходиться делать сайты расчитанные на большую нагрузку 8-12 польз.\сек. Поэтому ORM сильно лагает. Частично рулит только для админок.
Кроме Propel & Doctrine, есть реализация ActiveRecord для прадо, но она и имеет огрниченное применение: только для простых случаев выборки данных. Если надо что-то посложнее, то прадо предлагает SQLMap, что мне кажется более логичным и правильным, так как тупом переписывать SQL в код для какой-то конкретной ORM и производительность нереально падает и наглядность кода. Кто-нибудь пытался написать только с помочью ORM запрос на 1,5 экрана? Выходит глубость в лучшем случае на 2,5 – 3 экрана, которую очень трудно поддерживать, которая не эффективна, … bla bla bla.
Мой вывод: не увлекайтесь ORM, штука хорошая только для определённых задач не забывайте про здравый смысл!!! ;-)
January 30th, 2008 at 02:51
Кстати, оносительно аналогов ORM есть MDB2 + DataObject + DataObjectFormBuilder в PEAR. Весьма рабочие решения, в своё время использовал.
January 30th, 2008 at 22:43
Большинство ORM (да и не только ORM, а просто DBAL’ов) на PHP, которые я видел, никак не отличают методы записи от методов таблицы. Для меня это критично. Если разработчики не понимают этих истин… Эм…