News Archive
PhpRiot Newsletter
Your Email Address:

More information

Symfony2 .. bumpy ride for some

Note: This article was originally published at Planet PHP on 6 February 2011.
Planet PHP

Well I should say, as an experienced developer I am pretty much all around happy with Symfony2. There are some things I do not like, some that are a bit tedious, but nothing that is horrible and, this is key, I can fix pretty much anything I do not like. Moreover with supervision any half way decent developer can be productive quickly. I would say 1-2 days pair programming to be able to stand on their own for 93% of the tasks during development. So from the POV of Liip I am happy we made the choice to go with Symfony2. Its awesome.

However as a less experienced developer happy with symfony 1.x, I can tell you that Symfony2 isn't for you. At least not yet and honestly I do not think it will be in the next few months. Most things that are in Symfony2 to make it easier for beginners I think suck big time, like Controllers without an explicit service configuration. Or the Controller base class. But remember I just said Symfony2 rocks, so there isn't much to make life easy for beginners, so for an experienced developer there isn't much of what gives beginners the warm fuzzy feeling, aka the "man in the machine" (aka magic) that just seems to guess what you probably want to do. For the most part these beginners do not hit the limitations or are content with that they have when they hit them. These limitations are what annoyed the hell out of more seasoned developers using symfony 1.x.

So is it possible to create a framework that works for both equally well? I am not sure. I think at the very least it will take a while to find decent layers on top that do not mean that the code ends up being only either useable for people who rely on magic or those that do not want magic. Maybe some CLI tools to easy life for beginners (aka I detected this bundle ships with Entities, should I enable them for you?) can work things out? Then again Controller will either extend the base Controller or they will not. So one side will not be pleased most likely.

At any rate today I spend some time trying to make configuration definition easier. I think there is a good chance that one tiny piece of that will make it into core. The other stuff probably will not, judging by the strong disagreements with people favoring 4-5 different approaches to handling configuration merging. But its a hard problem and imho one of the biggest one if Symfony2 is to eventually attract beginners too. I today I was quite pissed off that the rest of the community did not agree with me (well there is always Jordi if I need a shoulder to cry on), but they all disagreed because they weight certain aspects differently and I am sure tomorrow I will not be pissed anymore, because I respect all of their opinions. And I hope they aren't too ticked off because of me getting pissed off. Happy familiy lala.

But the take away for beginners is that we are not making it easy for us. We are not just saying, ah well screw beginners. Because when it comes down to it, we know that our community is better with beginners than without. We want you guys to feel at home. And we appreciate your feedback, especially because we know today its still a great effort to work through the current state of things in order to do so.