Symfony 2 and its backwards compatibility breaks
Last weekend Bernhard wrote a new blog post on the official Symfony blog about the revamped form component in Symfony 2.1 and apparently it’s no longer backwards compatible. This is not really surprising as not everything in 2.0 was marked stable not was everything included in that release that is meant to go into Symfony.
Still BC breaks like this should make you think before you act.
If I would be about to create a new website for a client I would use Symfony.
If I would be to create a cool new app that I want to base a business on I would use Symfony.
If I would be about to make a decision about internal technology strategy I would be careful.
I don’t mean to diss Symfony at all. But in the past few years I have been working on some platform projects aiming to create a base application on top of (then) symfony 1.4 which would then be used in several real life web projects.
So there was a tam building this application with everything we knew was common to the web projects to come. Those projects run by different teams would then take our application and build their stuff on top.
When choosing Symfony 2 for such an endeavor you have to be clear about it that some parts are likely to change.
When starting off with Symfony 2.0 you would have no final form component to use. However if you would need forms badly you would use the component as it were or maybe build something yourself.
Either way there is work coming up. When finally the form component now becomes available you need to change some code.
As long as only the base application exists you fine but as soon as it’s used in several web projects your efforts multiply.
If you keep the custom or previous version of the component you are now responsible for its maintenance. If you choose to upgrade you need to roll out your changes to all instances running your app.
You need to be aware of things like this before making a decision. I’m not advising you for or against Symfony but to think about the consequences of your technological decisions.
To be fair I think that the form component was the biggest component to worry about as literally everyone will need it. Now that it’s out there the Symfony feature list should be almost complete.