Здесь, у моего работодателя, я создал довольно большое приложение с внешним интерфейсом ExtJS и внутренним сервером Symfony 1.4.И два, честно говоря, я не чувствую себя ограниченным Symfony 1.4 в любом случае?
Во-первых: я создал свой собственный базовый класс контроллеров (который расширяет sfActions
).Этот контроллер может обрабатывать (отображать) различные типы данных.Он имеет общую обработку для типов Doctrine_Query
, Doctrine_Collection
, Doctrine_Model
и array
.
Кроме того, плагины помогают мне организовать код, а в некоторых случаях плагины используются разными проектами, поэтомуэто тоже большой плюс.И дополнительная функциональность, такая как формы: она подготовлена только для вас в автозагрузчике, вам не нужно ее использовать.И я не думаю, что это вызывает какие-либо реальные проблемы с производительностью (по крайней мере, не для меня).Но я хотел бы использовать дополнительную инфраструктуру sfValidator
, чтобы убедиться, что данные верны.
Единственная реальная "проблема" - это действительно команды HTTP REST-ful, особенно PUT
и DELETE
.Я только обошел эту проблему, создав контроллер для каждой «управляемой» модели и реализовав конкретные действия get
, list
, create
, update
и delete
.Поэтому, когда я хочу управлять Object
, я вызываю контроллер objects
, который выполняет действия executeCreate
, executeUpdate
и executeDelete
. Причина, по которой я прочитал , заключалась в том, что Symfony не реализовал и не смог реализовать эту функцию, потому что PHP действительно плохо это поддерживает.Я не знаю, правда ли это, но если это ваша единственная «реальная» проблема, вы можете попытаться исправить это в ядре Symfony.
Так что мой совет: если ваша проблема связана с необработанной производительностью:попробуйте профилировать код, установить кэш кода операции (APC) и профилировать код (да, это в два раза).Если ваша команда HTTP PUT - ваша проблема: я бы либо обошел это (так я решил), либо попытался бы исправить это в ядре.