As PHP frameworks go, Symfony 2 isn't entirely terrible. Before this project
it had been a while since I used Symfony, and back then it was still on version
1.something. These days it's kinda cool, allows easy use of popular design
patterns and doctrine works reasonably well.
There are some things I find frustrating though, often you spend more time
messing around with the YAML definitions of entities than it would take to
simply write a create statement in SQL. There are times when it's really handy
though, for instance our project hasn't had it's first release yet so we can
simply doctrine:migrations:diff to regenerate the base migration completely
automatically from the YAML definitions. This is really cool - I worked on a
Yii project for years where this was an entirely manual process.
I'm not really a fan of writing getters and setters on PHP models, I understand
why some people argue it's good practice and Symfony kind of makes you do it,
but it still feels like a lot of busywork. In fact that's my biggest complaint
about Symfony - for all the niceties and abstracted stuff it gives you, you
still end up doing a lot of pointless typing. And I really REALLY hate
annotations. Whoever decided that text in a comment should affect how
something works ought to be shot for the good of mankind.
Symfony 2 is one of the best turd-polishing efforts I've experienced. In the
context of PHP development it's a very nicely polished turd and one of the
least painful frameworks to get things done with. But no matter how much you
polish a turd, it's still a turd and PHP is a fucking turd.