In terms of functionality, it's basically for PHP what Rails is for Ruby, but unlike many other PHP frameworks, it's been designed with the platform in mind rather than trying to force Rails' concepts into PHP, as a result if which it feels "just better". This has given it an edge over competitors, which is why Symfony is remarkably popular among the more professional PHP businesses.
I think it's basically the only mature and popular surviving framework that dates from the blast of PHP frameworks that came to be when Rails got popular and PHP coders wanted that too.
isnt it so that its much easier to find a Zend plugins/libraries or Cakephp ready-made plugin/library than to find Symphony code snippets
Zend is well-written and solid, but old; it hasn't been materially upgraded for PHP5.3--which is all you should be using these days, there's no good reason not to.
Symfony2 can trivially use Zend-based components. (It does, for some tasks.) I've heard it wise-assedly called "ZF3" because of its compatibility in the past.
I know that HN is somewhat ignorant of the PHP community due to the large set of idiots there and the so not cool factor, but you're taking this to the extreme. Symfony is probably one of the most decent and most widely used pieces of open source PHP out there.
(This may be a bit flippant, but seriously--there's not really a good reason to be using stuff like CakePHP, etc. in 2011.)
Popularity:
Another way to understand the level of the community commitment is to compare it with other projects. Symfony2 is currently the most popular PHP project on Github (most forked and most watched overall) and the 12th most forked project for the whole Github platform. That's just astonishing!
Standards compliance:
Symfony2 embraces standards: First, Symfony2 is willingly centered around the HTTP specification (just have a look at the built-in HTTP reverse proxy). Then, we are embracing the PHP standards: PHPUnit, namespaces, PSR-0 autoloader, ... That makes Symfony2 easily interoperable with many other great PHP libraries.
Caching:
By embracing the HTTP standard, and thanks to the ESI standard, you can make your application fly very easily. Make your application as dynamic as you need it to be, and still benefit from HTTP caching. And if you can afford the installation of a reverse proxy like Varnish, the performance of your application will just be incredible.
Saying the effort should be put into some other framework is effectively turning the case upside down.
There is already a compatibility bundle for running Zend Framework apps with Symfony2:
http://symfony2bundles.org/beberlei/WhitewashingZFMvcCompatB...
And I'm working on another bundle that allows running Midgard MVC apps:
I haven't looked at Symfony, but I was really impressed by the event driven nature of Yii, and I couldn't wipe the smile off my face when I started looking into the active page elements.
I think 2.0 is as good an excuse as any to check out Symfony though, so goodbye to the weekend :)
I value Symfony so much because you can create all model classes, crud forms etc from command line (as much as you want as you update your schema) just based on specifications from a easy to manage yml file. Also with ORM behaviors, you are in control of everything about your model.
symfony was the project that made me realize that php doesn't need to be ugly.
Symfony2, on the other hand, can be pretty safely termed a modern system: it's almost completely modular (and not in the "override some files, it's like magic!" method of Kohana or CI), expects modern programming practices (it doesn't treat you like an idiot; you can use PHP 5.3 stuff like anonymous functions and it's cool with it), and is blazingly, blazingly fast when configured properly.
CodeIgniter also has no conception of how to actually work in PHP5.3. Perhaps CodeIgniter will acquire that down the road, but right now it's a poor routing kernel surrounded by a lot of inconsistent and very ugly modules that are duplicated or improved upon in the other major frameworks in common use.
"Doesn't require a lot of coding" is nonsensical; I can build a Symfony2 application to do nontrivial task in less time, with better and more reliable code, than I can the equivalent in CodeIgniter. And I used CodeIgniter since around the time of the original release. There are not many cases where something is top-to-bottom dominant in its field, but aside from documentation, which is being improved upon incrementally, Symfony2 really does fit that bill.
As far as I am concerned, Symfony 2 is the gold standard example for developing a PHP project of any kind.
Ultimately though, I didn't decide against Yii because of what it couldn't do, but decided on Symfony 2 because of what it did do. It was just a more pleasant experience, and I never felt like I had to fight the framework to do what I wanted to do. Sure, it had a steeper learning curve than Yii (I started using it in the preview release stage, when documentation was in flux), but I feel that it made me write better code.
I have no idea whether this is novel, but it is to me, and I really like it.
http://wiki.openpsa2.org/index.php/MidCOM_Components
https://github.com/midgardproject/midgardmvc_core/blob/maste...
As part of this work I will also write new Symfony2 bundles for whatever functiolity our old frameworks had a SF2 misses. The first one is the ability to run Symfony2 apps under AppServer-in-PHP, a pure-PHP application/HTTP server. No Apache required! :-)
Maybe you could rely on that, instead of aip :)
https://github.com/indeyets/appserver-in-php/tree/master/AiP...
Anyway, based on your suggestion I posted a quick ticket about adding support for the built-in PHP webserver:
FYI, Symfony2 requires minimum PHP version 5.3.2
PHP 5.3 which is not something every shared hosting provider will support, most are still on 5.2.series. so everyone should keep that in mind while writing PHP app with Symfony2
(end joke)
http://bergie.iki.fi/blog/php_can_perform_better_than_node-j...
I would also like to add that Fabien Potencier has been amazing and is officially a coding Robot!
Beyond methodology and community, one of the major decisions involved when selecting a framework is being confident that your codebase will be supported in the near future. The Symfony developers and community seem very committed to their framework. Great Job!
I can't help but wonder who this "book" is being marketed to because of this "you can only access the book while you're fully online" limitation.