…and semi-final, and heats. All in one post.
I’ve spent a lot of time recently looking at MVC frameworks. PHP ones. And when I say a lot of time, I don’t mean I’ve obsessed over the subject like it’s the difference between life and death. Maybe.
Truth is, there are so many PHP frameworks out there and so many “mainstream” ones that all claim they are the best. And maybe they all are… in their own way. However what they all assume is that you – the developer/user – will be willing to conform to the ways and opinions of the developers behind any one framework.
I personally think that a framework should be a means to get up and running quickly. It should be lightweight and flexible enough to allow plugins to be easily installed and used, and easy enough to learn so that you can write your own. It should be secure. It shouldn’t, then, require a CLI script to install a new website, requiring pages of documentation to get you up and running. It shouldn’t, by default, contain every function and method known to man – realistically you’re only going to use 1% or so of those functions. It shouldn’t be so strict that you have to effectively learn a whole new “language” to get going. I want to be able to download the latest release of a framework, drop it into some web space and get going.
Looking at all of the frameworks on a list I found here I decided on CodeIgniter. Why? It was the most flexible framework out of all of them, and allowed me to simply drop in the files and get developing. I fancied a stab at CakePHP, but when I couldn’t even get their built-in authentication module to work I gave up. Using a framework shouldn’t be that complicated!
The other reason my choice rested on CodeIgniter was because, as part of a team effort, I have been involved in writing a PHP MVC framework at my job. I wrote the core code for the framework before everyone else joined in and started writing plugins and adapting the core to our needs, but this framework was loosely based on CodeIgniter. This meant that it was a natural progression from a custom-built framework to a mainstream one, as I already had a good idea of the structure requirements.
I’m not saying CodeIgniter is for everyone and people will have preferences of the other frameworks. But I am saying I think it’s worth a developer looking closely at the different frameworks available before settling on one – choosing the wrong framework could mean extended development times or limitations if you can’t work out how to do something in the chosen framework.