Two years after PHP frameworks started becoming popular, people are still confused as to what exactly is a software framework. The bottom line is this; a framework is a way in which you build your software. Usually, this is achieved with an implementation of the model-view-controller (mvc) design pattern.
A framework is not a bunch of classes packaged together. This is what I refer to as a component library. Component libraries are not a bad thing.PEAR is one of the most well known and one of my personal favorite. Most of the time, however, frameworks are packaged with these component libraries.
So there’s your framework primer. Now let’s get down to business. I’ve personally worked with most of the popular PHP frameworks such asSymfony, CakePHP and Zend Framework. I’ve been disappointed with all of them in varying degrees. Traversing through the forest of documentation for each of these is not exactly what I call fun. I’d rather start writing the code.
I was listening to the new PHP Abstract podcast and heard a little something about CodeIgniter. After reviewing the docs, wiki, and forums, I decided that this was the framework for me. Briefly, here are the benefits of using this framework:
- Clear and concise documentation
- One of the quickest to get up and going
- Compatible with PHP 4 and 5
- Very little configuration
- Doesn’t try to abstract every part of PHP
- Easiest deployment
- Extremely customizable
- Versatile: Can be used in shared hosting environment
In the short time I’ve been using CodeIgniter, I have only one gripe, the custom error handling. This is unnecessary and a bit confusing. I simply commented out the ‘set_error_handler()’ call and then all works as expected.
Here’s the bottom line, if you’re tired of trying to figure out all the YAML configuration of Symfony, or tired of searching for a starting point in the myriad of Zend Framework docs, try out CodeIgniter. It’s the quick and easy way to build well structured web applications.