avolver
@avolver
Веб-разработчик

Вечный вопрос: какой фреймворк вы посоветуете для конкретных задач?

Здравствуйте, уважаемые хабра-программисты!
Я начинаю писать серьёзный проект: социальная сеть с возможностью гибкой фильтрации большой БД.
В данный момент — стою перед выбором фреймворка.
Есть самописное решение, которое я знаю вдоль и поперёк, к тому же — оптимизация на высоте, но… заказчик желает надёжности, а на моём движке запущено всего два сайта и обкатку он ещё вовсе не прошёл.

Поэтому… посоветуйте пожалуйста PHP-фреймворк, подходящий под сии критерии:
  • MVC-подобная архитектура.
  • модульность на каждом уровне.
  • быстрый шаблонизатор, желательно на Blitz; с поддержкой многоязычной локализации.
  • кэширование отдельных блоков, как глобально, так и для каждого пользователя отдельно.
  • работа с MySQL (и, будет плюсом, MongoDB); проверка данных на инъекции.
  • поддержка почтовой очереди.
  • быстрое определение браузеров.
  • работа с пользователями: регистрация, забытый пароль, логин, профили, комментарии, права.
  • возможность определить точку входа для AJAX-запроса в тот же модуль, который собирает страницу, откуда отправляется запрос.
  • желательно, возможность русскоязычной поддержки или, хотя бы, обилие информации на форумах

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

Дайте совет — кто чем пользуется?
Спасибо,… (:
  • Вопрос задан
  • 4419 просмотров
Пригласить эксперта
Ответы на вопрос 10
Inori
@Inori
Symfony2.

* Одна из лучших архитектур
* Модульнее некуда (компоненты Symfony2 используются/будут использоваться в Joomla, Drupal8, phpbb4, Laravel4, етц)
* Шаблонизатор по умолчанию Twig, к нему лично у меня нет никаких претензий. Мультиязычность из коробки. Но если что Blitz встроить не будет непосильной задачей.
* Встроенная обратная прокся, поддержка ESI из коробки
* Полная интеграция с Doctrine, которая в свою очередь поддерживает и MySQL и MongoDB и еще до кучи других бд
* Spool из коробки
* Определение браузеров из коробки вроде нет, но какой-нибудь bundle для этого наверняка найдется
* Поддержка пользователей через FOSUBundle (все перечисленное там есть)
* Официально русской поддержки нет, но русских много в этом коммюнити, так что если с английским совсем плохо, то помощь на родном языке найдется
Ответ написан
MpaK999
@MpaK999
Буду!
К Yii выше, я бы еще добавил Laravel очень доходчивый, хорошо документированный и понятный фрэймворк — laravel.com/docs
Ответ написан
Комментировать
metamorph
@metamorph
Ну, лично я фанат Yii. Прототипировать на нем можно с какой-то нечеловеческой скоростью, да и в реальной жизни Yii не тупит особо.
А так — пофиг, наверное, особенно, если у Вас еще нет собственных предпочтений.
Основной bottleneck у Вас будет вовсе не во фреймворке :)
Ответ написан
Inori
@Inori
Попробуйте расширить UploadedFile что бы можно было работать с загруженными файлами так как вам надо.

А в чем проблема? В одном из проектов так и делаем.

Попробуйте использовать FormBuilder так что бы он подтягивал поля модели, которые являются полями другой модели у которых связь 1 к 1.

А в чем проблема? Реализуемо с EmbeddedForms + DataTransformers. Более того, опять же, в одном из проектов делаем еще более сложные махинации.

Что делать если в DI Container лежит не тот объект на который вы расчитывали, где искать ошибку?

php app/console container:debug


Что делать если нужно вести историю изменения объекта, но нельзя использовать EntityManager в lifecycleCallbacks. Зачем тогда они нужны?

Event Listeners.

Почему что бы реализовать SOAP нужно встать раком?

Без конкретики не могу ответить. Мы испольузем BeSimpleSoapBundle без проблем.

Почему один конфиг на все приложение(app/config/config.yml)?

parameters.yml, routing.yml, security.yml, и возможность определять по бандлам services.yml и routing.yml не в счет?

Почему мы не можем унаследоваться от Entity из FooBundle, который не знает о нашем BarBundle?
Можем.

Какого хрена SecurityBundle как из коробки, так и из FOS такие убогие по функциональности но такие здоровые?

Субъективный, эмоциональный пункт, отвечать не вижу смысла.

Почему на официальном IRC....

Даже не знаю что на это ответить…

Отлично. Почему в столь прекрасной ORM невозможно сохранить не все измененные, а лишь одну измененную сущность?

Можно.

Я могу продолжать очень долго.

Продолжайте.
Ответ написан
@R0ckwi11
Попробуйте Kohana,
Я его везде юзаю, хоть сообщество уже почти загнулось, да и 3.3 никак не зарелизится:(
А так неплох Yii.
Ответ написан
Комментировать
SowingSadness
@SowingSadness
web-разработчик
Однозначно выбирайте Yii.
По мотивам нашего выбора: habrahabr.ru/qa/16766/

У меня уже есть еще кучка негатива в сторону Symfony 2 как не до конца продуманной архитектуры.

В Yii «въехать» очень быстро и просто.
Полная документация на русском языке. (На sf2 даже на английском не полная)

На счет поддержки. Не смотря на то что срок поддержки у sf2 длинее, это в реалиях оказывается не правдой.
sf2 слишком фрагментирована. sf2.0 больше не развивается и нахдится на одном месте.
Сейчас разрабатывают sf2.1 но она не стабильная. Все бандлы теперь начинают переписывать под нэту версию, забивая на sf2.0. И в один прекрасный день, обновя бандл, вы можете столкнуться с тем, что он перестал работать вообще (а в старой версии были баги: р)
Ответ написан
Wedmer
@Wedmer
Если Вы доверяете себе, уверены, что ваше решение не будет Вами забыто, то лучше выбрать его, если оно на 100% подходит.

А так Yii.
Ответ написан
Комментировать
@Vampiro
Выбор, то собственно, зенд, Yii и симфони2… если вы настроены на php реализовывать. Работа с базами везде через DBAL, на сколько я в теме, поэтому там хоть для оракл можно подключать. Стандартные модули по админкам, думаю, есть у всех уже. Шаблонизаторы тоже переподключаются любые какие хотите. Тут вопрос скорее в том — во что вам будет проще и быстрее «въехать», чтобы не затягивать разработку ковыряниями в доках.
Ответ написан
@skvot
Недавно выбирал фреймворк для нового проекта. Выбрал для себя yii, чем больше познаю его, тем больше в него вклюбляюсь *_*
Ответ написан
Комментировать
glamurchik
@glamurchik
+1 yii
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы