Finding a PHP Framework

I used to develop a lot of my PHP applications using MX Kollection by Interakt, a company in Romania. The problem I often ran into was a lack of quick support from the company because of the time difference between Arizona and Romania. Then, in September 2006 they were purchased by Adobe which basically ended support of the Interakt product line. I realized that I needed to find a different development solution/process.

I decided to begin developing all of my future websites using some sort of framework. I’ve reviewed a number of different frameworks that work with PHP and developed a list of criteria that are important to me…

  1. Framework needs to work with PHP5
  2. Needs to be relatively lightweight
  3. Needs to be customizable and be able to work with other code such as 3rd party shopping carts, scripts, etc.
  4. Needs to have an active community that can provide support assistance when I’m stuck
  5. Should build on my existing PHP knowledge and not require me to learn an entirely new language

I’ve looked at a number of different frameworks including CakePHP, ExpressionEngine, CodeIgniter, MODx CMS, and Symfony and come to the conclusion that I am going to dedicate my efforts to learning CakePHP. This was not an easy choice and while reviewing the different frameworks and the pros and cons of each noticed a trend of developers who actually tried to develop within each of the frameworks. I didn’t do this, I focused on reviewing what the frameworks could provide and user comments relating to the different frameworks. I’m a bit indecisive when it comes to new web technology and really don’t have the time to test all sorts of frameworks in any sort of depth.

I came to my conclusion on which framework would be best for me by setting the criteria that it would need to work on PHP 4 and PHP 5, because some of my clients insist on their own hosting which might still be PHP 4, and a good support community. CakePHP, ExpressionEngine, and MODx CMS, were the three finalists because Symfony is PHP 5 only. I really like both ExpressionEngine and MODx CMS because they’ve already developed a “front-end” which is relatively user friendly and only requires that a user set up the structure of their page and then develop the html. I didn’t like the fact that both require learning a proprietary (albeit pretty simple) way of coding/tagging items that I would be required to learn. Because MODx CMS and ExpressionEngine are very similar I’d probably lean towards using MODx over EE. When I explored the different communities my choice became much much easier however. I focused on IRC channels and online groups. In the IRC channels (these numbers are based on right now) the CakePHP channel has 156 members and is pretty active, the EE channel has 6 members and is not very active, and the MODx channel has 18 members and is (pun intended) MODerately active. These numbers don’t lie, CakePHP is clearly the winner win it comes to support. In addition CakePHP has a great and active Google Group.

As I enter the world of CakePHP I’ll keep this blog updated with any information which I find helpful for designers/developers who choose to start using CakePHP.

About this entry