Why I wouldn’t use Symfony for a new project

Symfony is pretty good for a PHP framework — it’s probably still one of the better ones. While Symfony is open source, its development clearly isn’t open.

Nowadays, it is mainly unmaintained. Well, it’s maintained by Sensio, which is very closed towards outsiders, and doesn’t apply fixes for versions below 1.3 even when patches are handed ready to them. Which means for instance that the official 1.0 doesn’t work with PHP 5.3 even though the fixes are available and straightforward.

I will pass on the worrisome attitude towards security of the most used plugin as I’ve talked about it extensively already. Constant reminders don’t even work.

There is much more activity towards Symfony2, which might explain the lack of updates to the 1.x branches. Symfony2 introduces more decoupling, which should avoid many bugs reported but ignored by the development team, probably because they are boring to fix and require very deep knowledge in Symfony’s architecture — I would have tried to fix them myself if I had the time and motivation; I’m afraid I usually take the easy route and work around them.

But how does Symfony2 looks for a developer? What I’ve seen is fairly standard and boring, and sometimes looks like sad attempts of reimplementing Python features in PHP. Why not use Python then?

Doctrine2 is even worse — it’s the same broken, undocumented API. Propel 1.5, with a minimum set of changes, became much more powerful and easy to use for a developer. At least there’s hope on this side.

Overall, it seems the Symfony lead developers don’t take much input from the community (like the decision to follow Zend conventions), and focus on making something fun to write, instead of fun to use. I have the choice between an undermaintened version and a future version which will break compatibility without giving me much advantages; moreover some of the stuff that was shown in conferences isn’t event implemented yet. I’m not used to see that in the free software word.

Time to switch?

This entry was posted in PHP, Symfony and tagged , , , , . Bookmark the permalink. Comments are closed, but you can leave a trackback: Trackback URL.

21 Comments

  1. Salim
    Posted 2010-07-14 at 2056 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 Mac OS X  10.6 Mac OS X 10.6
    I have to agree regarding the fact that dropping 1.2 support was a horrible idea. I have a 1.2 application that I cannot move to 1.4 so it is going to be running 1.2.12 or whatever without updates or fixes for the next ~1.5 years. I feel like November 2012 is too short a timeframe for 1.4 as well especially considering the radical departure that is 2.0.
    On our intranet, I still have 1.0 apps installed, but I don’t care too much as they are not vulnerable to exploits.
    Other than that I really like symfony although I might start migration towards ZendFramework at some point.
  2. Posted 2010-07-14 at 2059 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 Gentoo x64 Gentoo x64
    Why not move it only to 1.3?
  3. Salim
    Posted 2010-07-14 at 2219 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 Mac OS X  10.6 Mac OS X 10.6
    Hmm… I suppose I could do that. I would still need a bit of validation work but I had sort of forgotten about 1.3.
  4. Posted 2010-07-15 at 0825 | Permalink
    Google Chrome 5.0.375.86 Google Chrome 5.0.375.86 GNU/Linux GNU/Linux
    You’re right, i’m starting asking myself lot of question for my futur projects.

    Maybe someone can fork the 1.x branch in a new community driven project !

  5. Posted 2010-07-15 at 0838 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 GNU/Linux x64 GNU/Linux x64
  6. Eric
    Posted 2010-07-15 at 1335 | Permalink
    Safari 5.0 Safari 5.0 Mac OS X  10.6.4 Mac OS X 10.6.4
    100% agree

    Switch to what ?

  7. Posted 2010-07-15 at 1336 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 GNU/Linux x64 GNU/Linux x64
    Good question.
  8. Yeti
    Posted 2010-07-16 at 0634 | Permalink
    Opera 10.60 Opera 10.60 Windows 7 Windows 7
    Time will tell. Symfony2 sounds interesting, although I think much like you about changing the whole implementation apporach yet again. I just got used to the 1.4-way of things!! ;-)

    If Sf2 really sucks that bad once it’s done, people will continue using old versions and there might even be a fork. That’s the real beauty of open-source. Why should only the inventor take care of the progress of his/her software? What if they got ill or otherwise unavailable? In an ideal world, everything would be so well coded and well documented that anybody can just dive right in and solve the problems. Of course, nobody is perfect and thus our code isn’t.

    I found fixing problems with symfony and Doctrine, at least the ones I have, pretty easy to do. But I feel your pain about the lack of docu, sometimes I am frustrated that only the “beginner” stuff is explained but the full power is concealed, e.g. by lacking a simple list of possible values in a config file.

  9. Willy
    Posted 2010-07-16 at 0651 | Permalink
    Mozilla Compatible Mozilla Compatible iPhone iOS 4.0 iPhone iOS 4.0
    Thanks for putting all these out. I share the same feelings about Symfony’s cumbersome roadmap and Sensio’s monopoly regarding code maintenance. Even the README of plugin pages have beenbroken for weeks and coreteam does not care at all…

    Symfony2 is a great move but as you said, switching to smthg likePython would be more efficient if uwant to rely on more robust tools than php…

    Personnaly I’m giving a try to django these days and am perfectly happy with it.

  10. Trevor
    Posted 2010-07-16 at 0726 | Permalink
    Google Chrome 5.0.375.99 Google Chrome 5.0.375.99 Windows XP Windows XP
    So what *would* you use instead of Symfony? I can have the same rant about (insert any technology) but without a valid alternative… and the Kohana community is even worse.
  11. Posted 2010-07-16 at 0807 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 GNU/Linux x64 GNU/Linux x64
    My issue with Symfony2 is mostly that it doesn’t seem to be that much better for a developer. Sure, it will probably be better written, faster and less buggy (on the long run)…

    I don’t claim to have the perfect replacement. Never tried Kohana, but it seems much less powerful.

    Maybe the alternative is a community-maintained Symfony.

  12. fabien
    Posted 2010-07-16 at 1018 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 Mac OS X  10.6 Mac OS X 10.6
    So, symfony is unmaintained? really? Just have a look at all the releases we
    publish regularly, and you will see that symfony is actually maintained. And
    symfony is not maintained by Sensio; it’s maintained by the symfony core team,
    which is mainly composed of people not working for Sensio. Have you noticed
    that Kris Wallsmith, the symfony 1.3/1.4 release manager does not work for
    Sensio? And the same goes for the symfony 1.2 release manager, Fabian Lange.

    Sensio is very closed towards outsiders? You must be kidding. Just have a look
    at all the contributors we have for Symfony2, even if it’s not even in alpha
    stage.

    As far as old versions are concerned, just give me which other framework has
    such a maintenance plan? Which one offers 1 to 3 years of maintenance for all
    its versions? And I’m talking about maintenance, not new versions with new
    features (even PHP does not do that). Want support for 5-7 years? That’s also
    possible through paid support. But I guess you just want free stuff, right?
    Want to support it yourself? That’s also possible. But as you say in your
    post, you just go the easy route and you don’t really try to contribute back.
    What a poor attitude towards an Open-Source project.

    To sum up, keep in mind two things: an Open-Source project is as good as its
    community; and a community needs more people willing to help and less people
    ranting.

    Good luck with your next framework.

  13. Posted 2010-07-16 at 1040 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 GNU/Linux x64 GNU/Linux x64
    Undermaintened.

    People are submitting patches. Which are seldom applied, often without attribution, and only to newer branches when it would cost nothing to apply them to the older ones too.

    Hopefully, using git will negate some of this.

  14. fabien
    Posted 2010-07-16 at 1052 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 Mac OS X  10.6 Mac OS X 10.6
    Commits without attribution? That should be rare as we try to always attribute patches. If not, that’s a mistake. And yes, Git will fix that very nicely.

    *Most* patches cannot be applied because they are just plain wrong (they kind of fix the specific problem of the person and they break something else; and they don’t fix the root cause). That said, if you think there are tickets with valid patches, which is of course quite possible, then feel free to raise the issue on the dev mailing-list.

    There is a cost for everything (think release process). But if you want to become the new maintainer for symfony 1.2, I would be very happy to give you everything you need, even if you don’t work for Sensio ;)

    As a side note, before the end of life of symfony 1.2, many people said that they wanted to maintain it for a longer period of time. Not one or two people, I’m talking of many people. What have they done? Nothing? Why? I don’t know. Probably because contributing to an Open-Source project means commitment, it means dedicating some of your free time to something that you are not paid for.

  15. Posted 2010-07-16 at 1054 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 GNU/Linux x64 GNU/Linux x64
    Symfony 1.2 projects are easy to upgrade, contrarily to 1.0 or 1.1 (though I don’t have much experience with 1.1).
  16. Fabrice
    Posted 2010-07-16 at 1155 | Permalink
    Google Chrome 5.0.375.99 Google Chrome 5.0.375.99 Mac OS X  10.6.4 Mac OS X 10.6.4
    Talking about decoupling, I think Symfony is probably a bit too coupled with Sensio, maybe with Fabien. Look at every single footer page of the official project website:

    I’ve always wondered what does this exactly means. All I know is if you want to book adwords with the word “symfony” in it, you have to request explicit permission to Fabien. I think it’s totally unfair regarding healthy competition and companies who try to make money out of services around an open-source project like Symfony. Remember that without any user, a framework simply doesn’t exist.

    And what’s the point with the “get a Symfony guru” for 3k€ a day? who can afford such a price nowadays? and no mention of the “Symfony expert” which can be rent for 1.5k€/day because “he worked more than one year for SensioLabs on professional projects”. One year? must be kidding, probably.

    Sorry for the rant but I think that Sensio is taking the wrong communication path at this very moment.

  17. fabien
    Posted 2010-07-16 at 1157 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 Mac OS X  10.6 Mac OS X 10.6
    There is no need to maintain 1.1 as 1.2 is totally BC. If you want to take care of 1.0 though, send me an email.
  18. Posted 2010-07-16 at 1236 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 GNU/Linux x64 GNU/Linux x64
    Many open-source project have copyrighted names: Linux, Firefox, etc.

    You are free to copy Symfony and name it Cacofony or something!

  19. Posted 2010-07-16 at 1443 | Permalink
    Google Chrome 5.0.375.99 Google Chrome 5.0.375.99 GNU/Linux x64 GNU/Linux x64
    Since some have wondered if the former Fabrice was me, (Fabrice Bernhard), I post here to confirm that he’s not me. Especially because I disagree.

    I think it is necessary to protect the symfony brand. Imagine if Walmart wanted to call their new Yogurts Symfony and bought all the related domain-names ? Symfony developers would be hurt as much as Sensio.

    Concerning the sensio guru website which did shock some developers in the community, I do not see how it hurts any of us, on the contrary ! If Sensio is able to charge as much, and you think you have more experience than their “symfony experts”… now you can use this website as a proof that you deserve more than 350€ a day ! And you can thank Sensio for that.

    As for maintaining the 1.0 version, Theodo has discreetly started such a task, with http://github.com/theodo/symfony1.0-backports Please feel free to contribute !

  20. Posted 2010-07-16 at 1457 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 Windows 7 Windows 7
    I personally had tried out Symfony very long time ago. at the moment, I use CakePHP and i like its features and ease of use especially its ORM feature. Hence I would suggest anyone interested in an Open Source PHP framework tries out CakePHP (www.cakephp.org).

    I have always been Doubling my PHP and DotNet(VB,C#<ASP) but I am recently planning to switch fulltime to DotNet (C#,ASPX) due tosome weaknesses of PHP I have been able to identify.

  21. Posted 2010-07-16 at 1506 | Permalink
    Firefox 3.6.6 Firefox 3.6.6 GNU/Linux x64 GNU/Linux x64
    IIRC, CakePHP’s ORM is quite limited.

    .NET? OK, the troll got too far.