Symfony Live Conference, Symfony 2.0, and Dependency Injection

Fabien Potencier

February 19, 2010

This has been an amazing week for me, Symfony, and the whole Symfony community. With more than 350 attendees coming from more than 30 countries, the Symfony Live conference was a blast. I want to thank all attendees, speakers, and the Sensio Labs team for coming to the conference and making it a truly fantastic event.

If you have not attended the conference, you can still come to the Symfony Live After-Party next week in London. And don't miss Symfony Camp in June and Symfony Day in October. If you live far away from Europe, stay tuned as we have more exciting news to announce in the coming weeks.

The conference was also the occasion to unveil the first preview release of the upcoming Symfony 2 framework. Since then, the buzz has been great and I have already received a lot of good comments on it. Of course, I hope that this is just the beginning, and that more people will provide feedback.

On the PHP Community#

I'm also very proud that people from so many different PHP "sub-communities" attended the conference: Jon Wage (Doctrine project manager and lead developer of Doctrine 1.x), Fran├žois Zaninotto (lead developer of Propel), Nils Adermann (lead developer of PhpBB), and of course, Matthew Weier O'Phinney (Zend Framework lead).

I like to see the whole PHP community as a big unified group of developers trying to promote the same platform. And I do my best to be a good "PHP citizen". I try to innovate by adapting concepts from other languages. But I also try to not reinvent the wheel when it's not mandatory. The symfony 1 framework uses a lot of third-party libraries like Propel and Doctrine. And for Symfony 2, I'm proud to have replaced our own Logger and Cache system by the equivalent components from the Zend Framework. And you can imagine that it was not an easy decision to take. First, because it meant throwing away code we have written and maintained for years. Then, because the Zend Framework is our main competitor. But I'm sure we have made the right decision and Matthew seems to have the same point of view on that matter.

On PHP Frameworks#

People are jealous, so jealous that it makes me really sad. For the last few years, some PHP framework communities attempted to "kill" Symfony by trying to demonstrate that it is too slow, too complex, and too bloated. Of course, that's not true. And the number of high-traffic websites using symfony 1 speaks for us.

I get inspiration from many different frameworks from many different languages. Besides PHP projects, I like to follow the development of Django, Spring, Rails, Maven, Jinja, Rack, Sinatra, and many others. I try to bring innovation to the table. And for Symfony 2, I have tried to take into account the major pain points of symfony 1. The truth is that Symfony 2.0 requires no configuration. The truth is that Symfony 2 is really fast. Is it the fastest framework? I don't care. It is probably fast enough for your next website, and so is symfony 1.

Now if some people cannot accept that Symfony 2 is really fast and if they cannot accept that Symfony 2 is great step forward for PHP, that's sad. The web evolves very fast. Competition is everywhere for PHP. We should all be in the same boat.

I would love if people from different framework communities can work together more often, like what we have done with the PHP 5.3 interoperability group. I would love if we can share more components. I would love to discuss how we can make our PHP community grow faster.

Is it a dream? I hope it's not. And I have a proposal. Let's organize an event where several PHP framework communities can discuss and share ideas. Anyone?

On Dependency Injection#

The biggest Symfony 2 innovation lies in its low level architecture. And its flexibility and speed is mainly due to the Symfony Dependency Injection Container component. Dependency Injection Containers are not widespread in the PHP world, and I really think that this is a very good approach. That's why I talk about Dependency Injection at conferences. Next time I will talk about this topic is during the ConFoo conference in March.