I know that a lot has been written about PHP frameworks. Now I’m going to throw in my two cents. About a year ago I went though the exercise of selecting a PHP framework for a large internal infrastructure management application I was architecting at a Fortune 100 IT company. At that time I did know about Ruby on Rails, but I choose PHP instead because that was what the dev team knew, it was what I was familiar with, and I knew of a lot of free tools/source that we could leverage. I thought all the major frameworks were either immature or lacked documentation, so we went with a custom design. A presentation layer using SMARTY, a middle tier using business and data objects, and finally a DAO layer. Ofcourse this was using OO PHP5, MySQL 5, and Apache. All running on Fedora Core.
I subsequently went through this exercise again in early 2007 for an overhaul of a business application one of my clients was running. This app was written in PHP 4 using MySQL 4. I had narrowed the PHP framework field to four payers. Below is a summary of each:
As of early 2006, this was the most widely talked about and discussed PHP framework on the net. There was a lot of positive buzz. CakePHP has some great RoR type features such as AJAX helpers and static scaffolding using code generation. They had the best IRC channel in which I was able to get help from the framework creator himself, “phpnut”‘. For having the advanced features it did, it was fairly easy to set up and get started with. In the end though, there was still a lack of good documentation. Many external web sites talked about CakePHP, but none had substance in my opinion. The screencasts on the site lacked narrative, the manual was sub par, the articles section on the Bakery was not very thorough, and the Google groups was unresponsive. Worse of all, there was not a single decent sample application I could look over. And I don’t mean some toy “To-Do” list, I mean a real app.
This sounded stunning on paper, but I had a nightmare with setup. Though the Askeet tutorials seemed promising, I found that in many occasions, steps were missing. Also, the whole concept of configuration files was messy for me. The admin generator was hell to get working. This certainly seems like a very feature rich framework and the only one that leverages PHP5, but the lack of simplicity really turned me off. I decided this wasn’t the framework to use after a couple of weeks of playing with it.
These guys had the most promise in the beginning, but it seems there is no focused effort to release this. The framework has been in preview mode for what seems to be forever. The documentation sucks, there is no decent sample app, and the community support is atrocious. After I few hours, I ditched Zend.
Though CodeIgniter is the most simplistic of the frameworks discussed here, it is by far the best documented. The documentation on their website is nothing short of fantastic. The community support is the best I have seen. Most of my questions were answered within hours! As I stated earlier, this is a simplistic framework. There is no built in AJAX support and no built in code generation (there is an external free 3rd party tool that can do CRUD generation, but it isn’t an official part of the framework). Also there are several elements of the framework written procedurally. Another point of irritation was the glacial pace at which updates to the framework were released. Also the IRC channel lacks users. But in the end, CodeIgniter had a fuly featured application called BambooINVOICE. As you can guess, it is an invoice application. It was very well written and the author frequents the CodeIgniter forums, so questions about its design can get answered.
The winner of my search was CodeIgniter. The reason being was the BambooINVOICE sample application. That was my true tutorial. This is a fully functioning and useful application that uses most of the features found in CodeIgniter. The secondary reason I choose this framework was because of all the great users in the forum. They were all so helpful, nice, and best of all quick! If you decide to go with PHP over Rails, then I srongly recommend you look at CodeIgniter.
One Response
Ganesh HS
June 21st, 2007 at 10:51 pm
1Zend has released framework v1.0 a stable version, now we don’t need of using PEAR or PECL or FPDF, lot of application packages are builtin.
This is the stable manual,
http://framework.zend.com/manual/
Frequently changing manual is,
http://framework.zend.com/wiki/display/ZFDEV/Home