Symfony – The Switch We All Saw Coming

Well, you’d all be lying if you said you didn’t see it coming. I gnaw your ear off in my last post about Doctrine, and how necessary Object-Oriented Design is in web application development, and how I haven’t found that “perfect framework” for me yet. Well, Symfony is definitely on it’s way to being my new framework of choice.

The reasons are obvious:

  • MVC Architecture
  • Doctrine Powered
  • Intuitive and Powerful
  • Awesome Documentation and Community Support

Now, I’d be lying if I said that there wasn’t a learning curve. For those of you already cool with MVC systems, then you’re only real task is learning how Symfony divides projects into applications and applications into modules, then it’s just a matter of picking up helpers and useful configurations, and your off. For those who are new to MVC architectures, I would strongly suggest reading up on it first. This is not so much necessary for Symfony, but a good idea in general.

I remember hearing about Rails, and how awesome it is because it’s very powerful and it utilizes cutting edge, sophisticated patterns and systems. While this is wonderful, if you aren’t keen to these things (MVC, Active Record, Database Abstraction Layers, and for PHPers… Ruby), then you are going to get hit with a lot and probably wind up saying “Rails is too confusing”, like I did. But then, with about a good year’s worth of studying in Computer Science and Software Engineer (if only cool Frank could hear me now), I’ve learned of such technologies independently, became comfortable with the concepts, and even implemented these assets in my own projects.

So fast-forward to today, when I feel that I have a pretty good grasp on these concepts and ideologies, when you discover a framework that pulls together all of those elements that you feel strongly about. It’s definitely a no-brainier for me to go the Symfony route. This, however, is not to say that everyone should go run out and use Symfony if you are into the aforementioned details. A framework strongly relies on the user, you need to click just like you would with your spouse (hopefully, that’s a good kind of “click”). A similar thing happened with me a JavaScript framework. Now I hated writing straight JavaScript a long while back, and I was desperately seeking a JavaScript framework to help me enjoy it so I can make those rich, web interfaces I kept seeing. So I grabbed Prototype, and I did everything in my power to learn it. But it just wasn’t “clicking”. I stopped all my Prototype efforts and, all in all, left JavaScript alone for a while. Until I found jQuery, and now I swear by it, I’ve contributed to it, it made me love straight JavaScript, and it actually got me into writing more JavaScript without a library.

That is the whole point of a framework, after all: to speed up your development. Symfony is doing that for me in a big way, but thanks in part to my past years of software engineering research. I say it all the time, “Programming is organic, regurgitating isn’t”. I found a great framework that works for me, but who knows, maybe it will work for you too.

I’d like to thank gnat42 from #doctrine, you we’re right as always … and you’re allowed to speak now.