Drupal has decided to become Symfony

(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: lawrence@krubner.com, or follow me on Twitter.

Drupal is going to borrow a bunch of components from Symfony. If they keep going down this road, then eventually they just become one of the CMS that is built on top of Symfony. In which case, what exactly is the unique thing that Drupal offers? The CMS’s built on Symfony are very good. Seems like this amounts to admitting that Drupal has hit a dead end.

The PHP library world has been changing rapidly in recent years. Once upon a time, there was only one really popular component library, PEAR, which had quasi-official status but was still a pain to install on many shared hosts. More recently, a number of popular frameworks have grown up, including Zend Framework, CodeIgnighter, and others, specifically casting off the PHP 4 legacy of earlier years. The Symfony framework, a Rails-y pseudo-MVC application framework, decided to go that route as well and completely reinvented itself for version 2. That included spinning off many low-level systems as free-standing components.

Zend and Symfony were both parties to the original PSR-0 standard, making it possible for (properly-written) code to be mixed and matched between the two.

When Drupal was looking for a 3rd party HTTP library to adopt rather than writing our own, we looked at two that seemed to have the best market share behind them: Zend 2 and Symfony2. We knew that whichever one we adopted we stood a very good chance of adopting more components from, so it was perhaps a more important decision than those involved realized at the time. After a comparison, we settled on Symfony for a number of reasons.

Symfony’s component libraries, or at least HttpFoundation, appeared to be richer and more self-contained, allowing us to pick and choose what we use.

Zend Framework has a Contributor License Agreement, which Symfony does not. While I fully understand the reasons why Zend has a CLA, and I’ve even toyed with the idea of one for Drupal in the past, it raises the barrier to entry for Drupal developers to contribute back upstream. We wanted to ensure that we didn’t just grab-and-go, but formed a partnership with whatever project we decided to leverage.

Speaking of partnerships, the quick feedback and cooperation from Symfony’s project lead, Fabien Potencier, and Lukas Smith carried a great deal of weight.

Even since then, Fabien and Lukas have made themselves available for help, insight, and other advise. Drupal folks have even started to submit code back to Symfony, too, for minor cleanup as well as feature fixes. That’s exactly what I was hoping to see happen.

Then again, every software project seems to develop a few users who never have the time or energy to move to a better, newer system, so the software becomes a brown dwarf, basically dead, but still there, giving off some wan heat to the forgotten debris still caught in its gravity.

Post external references

  1. 1
    http://www.garfieldtech.com/drupal-symfony2
Source