Symfony 2 не так плох как я о нём думал.
Просто везде не пишут как правильно его использовать.
Те кто говорят, что он сложный, но лучше, тоже не представляют как правильно «готовить» sf2 + doctrina.
Все Entity остаются лишь Entity без какой либо логики, только getters и setters.
Вся бизнес-логика оформляется в виде сервисов.
В контроллерах только проверка параметров и вызов соответствующего сервиса.
Все остальные претензии по поводу ошибок, событий и Forms к Sf2 остаются.
Но с подходом Data Mapping сложность написания и поддержки продукта действительно снижается.
Т.е. тут сыграл роль лишь Data Mapping.
В Symfony 2 есть большая проблема с тем что не правильно написан
DI Container.
И поэтому весь код практически сводится к использованию глобальных переменных. Сравните:
$myService = $this->getContainer()->get('myService');
/* vs */
global $myService;
Преимущество у Sf2 тут исключительно в том, что при использовании сервисов мы знаем что там что-то лежит. Не факт что то что нужно, но что-то лежит. От чего легче не становится.
UPD
Какой фрэймворк выбрать Yii 2 или Symfony 2?