About a year and a half ago, a friend of mine mentioned a PHP framework that I never heard of called CodeIgniter. At the time, I had been working on a custom framework system for a while that worked fairly well. However, given the fact that I was not able to find time in fine tuning the system because of the work load in the shop (with the company I worked for at the time), I was not able to progress the system as far as I liked.
What really caught my attention with CodeIgniter was how it encompassed everything that I was looking for in a PHP framework system. Below is what I think makes a good framework:
- Not overly complex. The learning curve should not be very high.
- Developed with the MVC pattern in mind.
- Out of the box, does not come with everything and the kitchen sink by default.
- Well documented, including keeping the documentation current.
- It needs to decrease overall programming time dramatically.
I have worked with CakePHP and the Zend Framework, but none of those seem to be what I was looking for. And so I developed my own system.
Do I regret spending the time in creating a system like this? No. I learned a lot about object oriented programming through this very extensive project and I ended up standing up some very large projects that used this system (not to mention that it did increase production by at least 33% from my perspective). I also learned that maintaining and keeping up with a custom built system like this is almost a full time position in itself. Making sure that documentation is kept up to date and that bugs are handled and taken care of ASAP is not an easy task.
What CodeIgniter did for me was allowed me to focus on putting things together. Instead of trying to always keep up with the foundation of the code we used for 90% of the projects, CodeIgniter provided me the solid foundation that I was looking for so that I could get through projects a lot more effectively and quickly.
I did take a look at the ASP .Net MVC framework that Microsoft released very recently. I’m very excited about this, because it looks very similar in how Code Igniter works (in a lot of different ways). I was also impressed with the articles and examples Microsoft released for the code project.