When I made the decision to develop my own arcade script I also had to decide how I wanted to go about building it. Since a lot of the basic functionality comes pre – baked into your friendly neighborhood framework, it was easy for me to decide to make use of one. However, I then had to decide which framework I would choose. Keep reading to see which one I chose.
Created by the folks over at Zend, the Zend framework is generally accepted as the professional PHP developer’s framework. This is primarily due to the fact that Zend offers certification courses on their framework. So if you were looking to beef up your resume with some PHP street cred Zend has just what the doctor ordered. To have a list of PHP frameworks and not include Zend is like gathering the ingredients for a great cake and forgetting to include the flour. Zend is a formidable php framework that is extremely modular. In fact, it is so modular that you can make use of it’s various components within other projects if you wanted to. On the other hand, that modularity can make it very difficult for a novice developer to pick up the framework with any amount of ease. In other words, the learning curve on this one is a little steep.
Symfony is another robust php framework that you could not leave off of a good list of frameworks. Though not as well known as the Zend framework you could still rely on this one to guide you through your more rough coding times. Of course, with a learning curve almost as steep as Zend’s you may not be up and running in any short amount of time. However, once you get going, you’ll never look back.
Yii touts itself as one of the best performing component based PHP frameworks on the market. Although a properly built application can make use of several methods to make it feel and act less bulky, caching for instance, one that is built from the ground up for performance is a definite plus. However, Yii is not as well known as many of the other frameworks on this list and thus it does not yet have the established community/user base that the other frameworks have. This is all well and good with proper documentation, but there is no substitute for having avid fans of a framework come to your aid when there’s a problem that you just can’t get your head around.
CakePHP is an extremely popular framework currently in use by some big name players like Mozilla’s Firefox Add Ons and the Onion Store. Cake takes much of the difficulty out of the developers path and puts in under the hood of it’s powerful framework. Thereby leaving you, the developer, to tackle the more substantial tasks at hand. However, the inquiring mind may wonder, or even insist, on knowing just what is happening behind Cake’s closed doors and for some this in fact a deal breaker. If one was looking for a php framework that feels and acts like Rails for Ruby, then Cake may be a close cousin in the PHP world.
Codeigniter is the only PHP framework on the list to receive recognition from Rasmus Lerdorf, the man behind PHP, for being a light weight framework that feels the least like a framework. It loosely follows the MVC design pattern and leaves little to the imagination the way that CakePHP does. On the other hand, Codeigniter has been criticized for purposely making use of more bulky, and old school, coding methods to allow for support in the old PHP 4 development environment. This has been a mixed blessing for the folks at Ellis Labs, creators of the framework, who have gained praise for not forgetting about the developers who are running in hosting environments that are not yet running PHP 5, but also receiving a fair share of criticism as well. I believe the criticism began to outweigh the praise, because as of CI 2.0 they have decided to drop PHP 4 support altogether. Codeigniter comes with a great bit of documentation. Also worth mentioning is their vibrant user base and very active forum. I think it fair to say that Codeigniter could very well be one of the most popular frameworks on this list.
So which one did I ultimately decide on, well for me, the choice was easy. I chose Codeigniter for it’s ease of use, excellent forum and user base, and it’s incredibly small learning curve.