This week I experimented with some frameworks to see which would provide me the fastest development track for some hobby projects of mine. When reading this post, bare in mind that I come from a Drupal background (so I’m quite spoiled!)… 😉
I had a few requirements that such a framework should have:
- User Authentication : This is something almost every application needs in some form. If it was up to me, then this basic functionality should be included within easy framework. This was actually the first reason why I switched to Drupal, I was sick and tired to maintain the user management coding whilest this is a common thing.
- Good Documentation : I don’t mind learning new things, but they should be very clearly documented. I actually learned php right off the php.net site; hands-on with the user contributed code samples.
- Easy Setup on a shared hosting : Some frameworks are so high up in the sky that it takes you about an hour just to grasp the concept of how the creators wanted it to be. In my mind, it should just be “extract & go”… This doesn’t mean that it has to be a single directory structure. It’s merely meant towards the frameworks which have a “console-like” application to manage the framework. Not everyone has shell access to their development machine…
- Active User Community : A big part of the “Fast development track”-motivation lies in code submissions of the community behind the framework. You can borrow the code or you can learn from it… Either way, you’re coding at a much faster pace.
- Easy Form Support : Forms are a BIG part of every application. We can add some bling to it with “ajax” (hypeword detected!), but it remains a form in it’s bare essence.
My Basic Experience
Now for the ones that I’ve tested… Also I would like to add a word of respect to all the creators of the frameworks. This post is not to bash any frameworks, but just a form to express my experience with testing them all out.
- CodeIgniter : Actually everything I wanted, except for the user management. They do have some user contributions there, but I found them all to be lacking something (either bloated or intrusive). Yet this remains my personal favorite for the “pure frameworks”.
- CakePHP : Solid framework where I think it’s better than CodeIgniter, yet I was totally frustrated with the authentication setup. To be correct; it was tight integration with the authorization setup… I did not find myself in a need for the use of their ACL framework, yet the authentication kept nagging about it. Quite intrusive so I gave up on Cake. Scored good on the other points though!
- Symfony : It went wrong with the basic installation, so I can’t tell you much more than that it was a pain in the **** (for me) to install. Probably due to the tight need of the “console application”. I must have missed something… as it seems to be a very popular framework.
- Yii & Prado: Was going to try these, but I had a bad feeling due to the (lack of) documentation & community size.
- Zend : From the maintainers of PHP! Yet I truly got scared after reading through the documentation. I was wondering if this wasn’t meant for an “amateur”.
- Akelos : Looked very solid, yet again with the “console application”. Despite not being that intrusive as Symfony, I just didn’t find my “swing” in it.
Now you must wonder; “You trashed them all, what are you going to use?”
To be honest; I’m not sure yet, but my mind is thinking towards keep using Drupal as a “framework”. It still gives me the most functionality out-of-the-box. Some might argument that the other frameworks are more performant, but that wasn’t my objective. My objective was geared towards “rapid development”, where the “rapid development frameworks” actually lost to Drupal (in my eyes).