September 07, 2012
Yesterday, Zend Framework 2.0 and Symfony 2.1 were released... almost at the same time. First, I want to congratulate the Zend Framework team for this huge milestone; I know that working on a new major version is no small task.
And of course, people started to ask questions about these new versions and one of the most popular was: "Why would I choose framework X over framework Y?". As you can imagine, the answer is not that easy as each framework has its own specificities.
I like to think that most popular frameworks are modular enough, fast enough, well-documented enough; they are using well-known design patterns. So, besides the buzzwords, what is unique to Symfony? Why would you want to use Symfony instead of X (replace X with ZF, CakePHP, Lithium, Laravel, Slim, Yii, you name it)? That's the question I'm going to answer in this post.
So, without further ado, here are my main selling points for Symfony:
Symfony is used by many large companies (like the BBC or CBS), by many large websites (like TED, wetter.com, Lockers or even YouPorn just to name a few) and some Open-Source projects are also powered by Symfony (CMSes like Drupal or eZpublish, libraries like PHPUnit or Doctrine, products like phpBB or shopware, and even frameworks like PPI or Laravel). This brings a lot of interoperability between all these solutions.
Symfony enjoys a huge community of users and contributors; during the last year alone, 550+ people contributed to the Symfony core and the community created over 1,600 bundles for the full-stack framework. Symfony also has several annual dedicated conferences around the world and a large number of user groups.
Symfony has been created in 2005 and here to stay. Besides SensioLabs, many other companies rely on Symfony for their clients and they contribute, invest money, and sponsor the future of the project.
Symfony embraces the "don't reinvent the wheel" philosophy, and provides tight integration with many other Open-Source projects (like Monolog, Assetic, Doctrine, Propel, ...).
Symfony tries to bring innovation to PHP: it was one of the first major frameworks to embrace PHP 5.3, to introduce the usage of a Dependency Injection container, and to use a templating engine for its templates by default, Twig, which is now also adopted by major CMSes like Drupal and eZpublish. Symfony also has some unique features like its gorgeous debug toolbar and its great built-in profiler.
If you think I've missed some important selling points, feel free to list them in the comments and in a few days, I will aggregate everything in a new page that will be hosted on symfony.com to help users make an informed decision when choosing a framework.
And if other frameworks would like to do the same, I would happily add links to their pages on the Symfony one, and if in turn, they do the same, that would create a ring of links that will ease the choice of a PHP framework for developers.