Symfony Sucks


25 Comments// Posted in Uncategorized by on 08.01.11.

I’ve been working with Symfony in the last few months on a major project for a client. For those of you who never heard of it, Symfony is an MVC framework for PHP. Probably similar to Ruby On Rails but for PHP. It is supposed to help you develop better web applications faster by using plugins and well structured code. Unfortunately, I found this to be untrue.

Symfony sucks. It has been responsible for major headaches for me in the last few months. Here are the reasons why.

  1. Symfony ain’t easy. If you want to do something simple or use Symfony plugins as they are, then you do have quite a lot of power in your hands. The basics look so simple in the Jobeet tutorial, however, as soon as your customer wants to do some customization, prepare to spend hours to figure out how, where to put that one line of code that will finally do what you want. Which leads me to the next point.
  2. Not enough documentation. While WordPress has a lot of documentation on the WordPress site, and plenty of extra tutorials all over the web how to do practically anything, Symfony is quite lacking in that department. There aren’t many Symfony tutorials out there, and the documentation on the Symfony site is poor. “The Symfony code is the documentation”, say the Symfony coding elite. So instead of spending 10 minutes to read a little documentation you expect me to spend hours going through the code to figure it out? That doesn’t make sense to me. Even when you Google Symfony stuff, you get old documentation which may or may not be deprecated. How annoying.
  3. Voodoo. Some weird things happen when you use Symfony, especially concerning the Symfony cache. Even though I work through the development environment where the cache isn’t supposed to have an effect, sometimes clearing the cache caused things to start working.
    developer frustration
  4. Annoying to debug. When some Symfony code goes wrong, the only way I know of debugging it is outputting some log messages into the huge Symfony log. There has to be a better way.
  5. Too much order turns into a mess. Not sure if it’s an MVC or a Symfony thing, but while developing I find myself running around lots and lots of files and directories to get what I want done. It may be sleeker code wise, but if it makes work more complicated and increases the work time is it worth it?
  6. Plugins out of date. Quite a few Symfony plugins stopped their development sometime in 2010 or even 2009. This is bad. It means bugs haven’t been fixed and much needed features aren’t being added. So you will probably need to extend those plugins and do it yourself. Sometimes some folks already did that, so if you see an out of date plugin search that plugin on Github and you might get lucky.
  7. Community not so communicative. I’ve tried posting some questions in the Symfony users group, but got no responses. Searching the group for previous answers is a daunting process, I rarely find what I need. Luckily some answers are available on the wonderful Stack Overflow, so make sure to check there as well.

In conclusion, I’ve been having a really difficult time working with Symfony. While frameworks like jQuery and even WordPress support my coding creativity and enhance my work, I feel like Symfony is hindering it. The system is so constrictive that I constantly need to find how to maneuver in it than have the system maneuver for me. Isn’t that what a framework is supposed to be about?

I wonder how the other web frameworks are – CakePHP, Ignite, Zend, and even Ruby On Rails and Django. I’m a fan of the KISS principal, and I feel the framework should follow and support it too. Symfony doesn’t.


Both comments and pings are currently closed.

25 Responses to “Symfony Sucks”

  1. John says:

    You spend a whole article complaining about a framework only to admit, in the last paragraph, that you have never tried one of the alternatives?

    You sound like you are looking for a ready to use system, like Drupal or Worpress, not a framework (no, WordPress is not a framework).

    • Scott F says:

      Definitely sounds like ‘first time framework’ frustration to me. Try going to use Zend, CakePHP, Yii, CodeIgniter and you’ll see you have plenty of complaints about them as well, until you finally understand it all.

      I’ve used all the ones I’ve just mentioned, and Symfony2 is by far the one I prefer to use.

  2. codeban says:

    I understand why you don’t like symfony… you think that symfony is a CMS; no wonder you seemed complicated.

  3. gino says:

    I agree completely!!
    Especially the forms are just ridiculous.

  4. Tobia Tesan says:

    Tried Cake, Django, Symfony and Rails.

    I, too, am beginning to have a strong dislike of Symfony (or, at least, of the poorly written and nearly unmantainable projects some people hack together in symfony), but Django is a piece of cake.

    It is sometimes a bit restrictive if you have to go beyond the scope of a “regular” web site / app, but when it comes to readability and mantainability I’d give it two thumbs up.

    Makes it nearly impossible to write spaghetti code (mind you: NEARLY, I said 😛 )

  5. […] since it was the biggest backend job I have ever done. Unfortunately the Symfony framework didn’t prove to be too cooperative. Following this project I moved back to developing frontend and WordPress […]

  6. Daniel C says:

    So true! While I have a good deal of experience with ordinary PHP and can do quite complicated things with it, I’m totally at loss with Symfony. It’s constraining, confusing and complicates even the simplest things. A total waste of time in my opinion.

  7. room34 says:

    Thanks for your post. I just googled “Symfony sucks” to vent some frustration and this came up.

    I’ve worked extensively for the past few years with CakePHP (I also work with WordPress, but have built my own CMS on CakePHP), and have really grown to love it.

    Right now I’m working on moving a Symfony site from one server to another, running into a ton of headaches along the way. I’ve moved plenty of CakePHP sites between servers and it’s never taken more than a few minutes.

    Granted, I know CakePHP and I don’t know Symfony, but my impression so far is that there’s a lot of needless complexity in its structure. Not needless, necessarily, but Symfony seems to favor performance (at least I’m guessing performance is why its structure is so inscrutable) over programming ease to a self-defeating point.

  8. dennis says:

    Most frameworks sucks at one or another point: E.g. they can be difficult to extend in some way that you need to extend them. The same can be said about CMS’s. When you need to template in a sudden dirrection it get’s difficult.

    The best option is sometimes to build your own framework as this is the only way you know how everything works and how you can extend and template anything. But most employess does not have the time for this, which is quite understandable.

    About this approach see:

    http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

  9. Eric says:

    Like everyone here, i Googled symfony sucks… Started a new job, I have to edit and bonify a symfony 1.0 application and It’s ruining my day so bad, I’m quitting this job already, because of it. It is the worse piece of tech i had to deal with, it’s just horrible, i don’t understand how people can like symfony, it’s heavy and stupid and splits basic information into multiple pieces in a tons of directories and you end up spending more time looking for the file, than coding into it. It’ a time waster, it does not bring anything to the table, it’s just a crappy formula to force people having a bad imposed structure. MVC doesn’t mean you have to be a dick about where you put your files. Fuck you symfony and everybody who loves you. DIE.

  10. dennis says:

    Just a note if you can’t find the ‘jobeet’ tutorial – you could read this introduction to a more recent symfony version (2):

    http://symfony.com/doc/current/book/from_flat_php_to_symfony2.html

  11. Vineet Dubey says:

    Really, Symfony is suck and so stupid….to just install symfony .how the hell of work i did and still getting this error…

    Fatal error: Class ‘Symfony\Bridge\Doctrine\DependencyInjection\AbstractDoctrineExtension’ not found in C:\wamp\www\Symfony_bkp\vendor\doctrine\doctrine-bundle\Doctrine\Bundle\DoctrineBundle\DependencyInjection\DoctrineExtension.php on line 34

    what a suck symfony

  12. Smouch says:

    Yep, symfony sucks the big wang. I’ve wasted several man-days just trying to make what I consider to be a trivial change. I’m quite familiar with the MVC paradigm (been using it for 2 decades FFS!), and even like the idea of breaking “code” up into specific files (and even subdirectories) to fit that paradigm, so, I expect the following directory structure src/model, src/view, src/controller (and perhaps a src/utility directory). instead I see a half dozen differently named subdirectories, only one of which is named controller. Whoever wrote this shite should be crucified.

  13. Irxik says:

    I agreed, symfony isn’t a framework but a jail for developers

  14. James says:

    I don’t know if Symfony really sucks, I have been working with Django (I am also a PHP dev) and curious to learn symfony, but man, the “big picture guide” just got me lost in the file paths! Let alone those underscores etc.

    I tried to install symfony on my mac and it never worked straight away, I remember it was complaining some library not installed or something which I have never the problem with Django.

  15. Ron Cemer says:

    I’ve worked with both symfony 1.4 and Symfony 2. The 1.4 version was pretty nice, driven by YAML files and code generators. But it was still painful to get anything done, and I’m a seasoned, high-level PHP developer and software architect. Symfony 2 is a joke. They tossed their code generators and switched to an inheritance model. The trouble is, you have to inherit from vague, badly-documented classes, and in so many places, it just kills your productivity.

    Also, both symfony 1.4 and Symfony 2 are slower than Christmas. And they’re not AJAX-centric.

    This is why I ended up developing my own framework, which has already being used to develop real-world, high-volume, AJAX-centric websites which companies rely upon for their day-to-day business.

    Have a look at the documentation: http://www.JaxFramework.org
    And the project page: http://sourceforge.net/projects/jaxframework/

  16. diversen says:

    Symfony is very complex, and can do almost anything, but that is also the downside to it. Often it is easier to make a ground-up application with ones own tools, or use a less complex framework – if you have not used symfony before, or you are not willing to put the effort into learning it.

  17. Raheel says:

    AGREE !!!

  18. Alan says:

    Really??

    You have to be kidding me if you ever attempt to compare Symfony with WordPress or Drupal.

    Symfony is not a CMS. WordPress and Drupal are not frameworks.

    Do you really have a hard time working with symfony? Symfony is by far the best PHP framework out there, even better than Zend.

    I’ve find it so easy to integrate with Javascript plugins, you just have to create a route and spit out JSON objects with JsonResponse and THAT’s IT. Seriously, how hard could that be???

    The documentation is great, at least for symfony2. There’s no need to have tutorials out there, but if you really need one go to knpbundles.com and you’ll have plenty of video tutorials for the lazy developers who can’t read.

  19. Phill says:

    I guess everyone has a right to pick the tools they like but just because you don’t understand how Symfony works doesn’t mean it sucks.

    I learnt the basics of symfony2 in about a month, a lot of that time was filled with “WTF???” and “I have no idea what I’m doing” moments but when the penny drops you realise how excellent the framework is.

    I would certainly recommend anyone struggling with symfony to brush up on their PHP knowledge (this is an excellent book: http://www.amazon.co.uk/Objects-Patterns-Practice-Experts-Source/dp/143022925X) and take a slowly slowly appoach to working through the symfony book which when combined with the cookbook gives you an excellent resource to get building in symfony 🙂

    There are a lot of pretty high level concepts going on in symfony, but having used symfony for a little while now I can honestly say its made be a better developer so even if you don’t end up using it thats a good thing right?

    Also Drupal now uses symfony components as of version 8, which has to be a huge improvement on what they had before (although that wouldn’t be difficult!).

  20. Andrew says:

    Symfony is a framework that is easily used by developers with a good understanding of OOP, TDD and service containers. If you are not strong in those areas, spending some time learning Symfony will make you better. The initial learning can take some time but it is worth it. The community is excellent and if you get stuck stackoverflow.com is your best friend.

    I have used it for the simplest of sites and ones that are much more complicated and I find it fits both situations well once you learn it.

  21. Json says:

    Symfony is SLOW like a sleeping turtle and gives You headaches when You have to do something more then just save things in database and show what is saved… It makes You feel like You are in prison with a spoon in Your hands and no food, so You have to get out somehow, but You are on Your own and on verge of death… Is it what framework supposed to do? NO!
    I have experience in couple of frameworks and basically it gives You tools which You can use to speed up your development and keeps good order in Your code, and Symfony on the other hand – “Wait, what? Where? OMG why? What for?” – constant rhetorical questions You think when developing typical big project with many functionality beyond “save and show”. It does things You don’t want 90% of time.
    Typical answer of symfony community when u ask them why it is so slow is: “Your server is slow” or “You did something wrong in configuration”. Ekhm., bull…t, other applications on other frameworks works in lighting speed while symfony takes many seconds… And none can point which line of confing makes the trouble…
    PS: Is it neccessary to cache everything just to output simple “hello world” – it made me lol, but still “hello world” is faster then anything more complicated in symfony, LOL. My rating for Symfony is 2 out of 10. Sorry guys, it is just that bad with handling problems.

  22. Majo says:

    Symfony slogan should be something like : “Don’t reinvent the wheel, invent the new square wheel and force everyone to use that”

  23. hal says:

    I cannot agree more with you dudes, I am actually working on both Symfony 1 & 2 and in my opinion, a web framework is not meant to be overcomplicated. I suppose that for fasting development, and when you get used to use it it can really be very usefull but to be honnest, when you are working on real life projects, you have deadlines to respect and the learning curve of this tool is too much time consuming to be worse it. I am one of these “first hours users” of Codeigniter and switching to Symfony is really painfull, but i must admit some features are awesome and save you time. On the other hand i cannot spend hours just debugging buggy or not compatible bundles and searching tenth of directories just to find one file. For me it is the same kind of frameworks than YII or ZF and I will avoid it.

  24. Todor Todorov says:

    Symfony is too complicated and with tons of config files. Sometimes this framework really has a strange behavior and it is not build on the KISS principals. I totaly agree for the documentation. Some of the things written in the coockbook works very hard. Symfony is not easy costomazible and you if need some custom stuff you are trapped in a endless circle of extending. I am using Laravel 4 from 4 months and I think that it is more better than Symfony 2. Laravel even uses in its core the Symfony bundle but all the stuff is properly wrapped in simple to use classes and methods.