test.ical.ly | getting the web by the balls

Jul/12

30

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.

Symfony 2 is stable and can be and is used in production. It’s a brilliant piece of software. Many pieces actually.

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.



  • FlorinPatan

    Sorry to point out but you are missing one thing… Not everyone needs it. We did a fairly large project, 6 countries, a couple of million of users and safe for the login form and some address fields we didn’t needed it. And I’m willing to bet that the are applications out there that are just the same. Granted the Forms component is a big one but I think there won’t be such major BC breaks in the future as everything is more mature now and after people have had actually the time to use it and provide feedback, and this is true for all the framework not just the Forms component, then I would really not be that scared of taking it on in the core bussines. But on the other hand I was on master since late May last year and ever since and upgrading a couple of weeks in between wasn’t such big of an issue for me :)

  • caefer

    @FlorinPatan:disqus You’re absolutely right. I might have been unclear about this. The form component is just an example maybe a likely one but it’s not about forms. I talk about features you or anyone needs which are not yet available but to come.

  • Fabian Steiner

    Very valid point, but I’d like to point out that all these shortcomings were and are openly communicated. I prefer to use software with a degree of known immaturity than doing a blind bargain. So for me personally this really speaks for Symfony.

  • caefer

    @google-b19f449a7649c9281b84642b563b3b62:disqus I agree. Not blaming Symfony at all here.

<<

>>

Theme Design by devolux.nh2.me