I've gone over what frameworks are, what I look for in a framework, and the relative performance of the various PHP frameworks available. With this article I'd like to review each of the most popular PHP frameworks, and the current state of PHP Frameworks. Let's get started.
In selecting these frameworks, I have eliminated commercial frameworks, specialized frameworks, component frameworks, frameworks with CMS, and frameworks that are no longer in development. You want a supported framework with developers working on improving the framework.
This drops the list from over 70 to 10 frameworks consisting of, needless to say, currently the most popular frameworks: Akelos, CakePHP, Codeigniter, DooPHP, Fuse, Kohana, Qcodo, Solar, Symfony, Yii, and Zend. If I missed a couple, we'll get them next time. I'm going to go over these one at a time and just give you my impressions.
Akelos was made to mimic Ruby on Rails in PHP with an MVC architechture. It offers code generation, scaffolding, and i18n internationalization. It has good documentation offering tutorials, videos, a manual and a wiki. I'd rate their doc a 4.0 on a scale of 1 to 5 with 5 being best. It has a fairly active forum. Akelos uses Active Records, like Rails, for database hookup. It runs both PHP4 and 5, and therefore is not truly object oriented. My initial impression of Akelos is it is farily bloated, and almost too aligned with its Rails clone image.
CakePHP has an excellent and passionate user community. Documentation is just OK, I rated it a 2.0. There are currently four books published on CakePHP. However, I did not see any tutorials, or videos on their site. They have an API, but send readers to buy the books to learn Cake. Cake is very restrictive in the way things are connected in your application. Although people rave about this frameworks automatic connections, because of their strict naming conventions, if I was just starting out, I would pass, the learning curve seems steep compared to other frameworks, and the performance is not there.
Codeigniter has excellent documentation, they have video tutorials, tutorials, a user's manual, a wiki, and an active forum. There are four books published on Codeigniter. I rate their documentation at 4.5. Codeigniter is one of the quickest frameworks. However, it is still PHP4 based. They have said they are working on Codeigniter 2.0 based on PHP5, but it will not be fully PHP5 until version 2.1. Codeigniter is made by Ellis Labs who have treated it as a hobby, and notoriously have taken a very long time between releases, which is one of the reasons Kohana spun off a fork. Don't expect 2.0 to be soon, but their working on it.
DooPHP claims it is the "fastest PHP framework," and if their benchmarks are to be believed, it truly can haul butt. It supports PHP5 only, an ORM, i18n international, templates, and URI routing. However, it achieves this speed by being light in its functionality and implementation, and at present there is no consideration of overall security. Their documentation and web site are excellent, and well written. I rate the docs a 4.00. Although they do not have videos, or a wiki, they have an excellent online manual, a class API, and tutorials to get you started. They have an active forum. My impression is they are still a little early in their development.
Fuse barely made this list. There were no benchmarks. However it is PHP5 based with an ORM and URI routing. They have a video, a wiki, and a class API with good install documentation. However, their documentation is sparse, and I rate it only a 1.5. There last forum update was two weeks ago. This framework feels like it is subsidiing with its last release in June of 2009.
Kohana is always changing and there lies its problems. When it forked from Codeigniter it quickly became popular as the PHP5 object oriented Codeigniter, and it is almost as fast as Codeigniter. It had good documentation for Kohana 2.4, however they just released 3.0 where they introduced a completely new architecture. They did this to become the only PHP framework supporting the HMVC architecture, read this as multiple MVC's on multiple servers all connected. I think they made this change knowing Codeigniter is working on their PHP5 version, and they wanted to separate themselves. However, at this writing, their documentation is awful for 3.0, which is what they recommend you use for a new project. I rate it a 1.0. There are no tutorials, no videos, and no books, just a sparse wiki and API. The forum is not really there yet. At this writing their lack of 3.0 documentation and support is enough to choose another framework, or use Kohana 2.4. Again, they just released 3.0. I do expect the documentation to get better, as they do have an active community, that will gradually build their new documentation, and when they do, Kohana's HMVC will again, emerge as a premier framework for large projects. Kohana gives me the impression that it is made for those that know PHP5 cold, and know what they are doing, not for the beginner.
Qcodo is similar to Akelos in that it models itself on Rails. It is PHP5 based, offers scaffolding, code generation, something called Qforms, i18n, and database profiling. They advertise a rapid application development platform that rolls out in minutes instead of hours. However, I found no benchmarks on Qcodo, and I suspect some bloat here due to the code generation. I put them in the same category and performance as Akelos, with Akelos in the lead, because of their documentation, although they are newer and are PHP5 only. Qcodo's documentation is lacking, there are no videos, no wiki, no tutorials, not a good install doc, but they do have some online docs, and a Class API. I rate their doc at 1.5. They do have an active forum.
Solar almost did not make this list, but I found some benchmarks so I included them. They are PHP5 and MVC, with a good form modeler, but no ORM. Their documentation is OK. They do not have video tutorials, but they do have tutorials, and very good online documentation integrated with the API. I rate their doc a 2.5, but sadly I could not find a forum.
Symfony 1.4.2 was in the CakePHP performance category, a dog. Their new release 2.0 is three times quicker, and now respectable. However, their new release is not out for another month or so. You can get the preview release now, which is how benchmarks on the 2.0 framework started showing up. Symfony has a wide following at the corporate level. It has a reputation as being difficult to learn as evidence by their seven published books. It's documentation falls into the same category as Kohana, slim on the new release and better on the old release. The old version has video tutorials, tutorials, documentation, no wiki, and their install doc is so-so. I rate their old documentation a 2.5 and their new version a 0.5. They have an active forum.
Yii started out as a competitor to Kohana. It is PHP 5 only, they use an Active Records, i18n, and themes. They initially generate the site from the command line. Yii uses MVC with a front-end controller that distributes to the other controllers in your application. Yii is reusable and extensible. It's fast and just as quick as Kohana and Codeigniter. For awhile, Kohana had its way, but gradually over time Yii has been coming on strong, due to greatly improving documentation. Now with the release of Kohana 3.0, I'd have to give the nod to Yii. Yii's current documentation is excellent, they have good install docs, tutorials, a Class API, and good online docs. They do not have video tutorials, or a wiki, but I still rate their documentation at 4.5. They have an active forum and a growing user base.
Zend is a rich library, since the Zend framework is supported by Zend the makers of PHP, it is up to date and full of functionality. However, it is bloated, almost reminds me of the PEAR library, instead of a framework, and their performance shows it. Unfortunately Zend uses the framework as a "come on" for you to buy their other products. The documentation for the framework is buried around their commercial products on their web site, and hard to find. When you get to it, it is thorough with a Class API, however there are no tutorials. Zend has the reputation as being difficult to learn, and hard to use. There are currently 6 published books about it. I rate their documentation at a 3.0. Zend integrates their framework into their commercial tools, and tries to lock you into using the framework, because of that integration. They have an active forum.
That's it for now, I will sum this all up in a summary and conclusion in my next article.