There are numerous PHP frameworks out there. Thats one reason i switched to PHP after doing Java for 3 years. PHP has more fun frameworks available that are easy to learn and implement.
When it comes to PHP frameworks there’s Zend, Symphony, CakePHP, Code Igniter and of course Yii framework.
You can also go with the mainstream and learn zend, but for me its too much for smaller quick projects. All these different frameworks has many plus points and their equal share of weak points. some are good for enterprise projects and some are good for small scale web based systems.
Here i have listed some points that i think are important when selecting a framework,
- Ease of learning. How easy its to learn the basics? what is the underlying technology?
- Project Scale – is it a project that should be implemented very quickly? a project that would have hundreds of users or one or two?
- How easy it is to quickly define our logical design in the framework? how to match our database schema with framework elements? does the framework use MVC?
- The learning materials available. There are some good frameworks but it doesnt have any E-books or any tutorials explaining how we can use the framework. for me this is a huge point, when i was trying to learn CakePHP I found that examples that details common day to day use of codings and methods are scarce compared to Yii framework. And if there is an easy follow documentation and tutorials plus an ebook then your life would be very easier when learning that framework.
- because ultimately your aim is not learning a framework but using it to develop a useful system that matches the requirements.
- How easy it is to host your finished product? does the framework require you to have some crazy obscure PHP options enabled on the server? It might be ok if your going to host the web site on your own but if your thinking about hosting it somewhere else this is a huge concern.
- Tools available for automatic code and architecture generation. some tools are there that are hard to learn and needs lots of resources to run. so better clear this up in the beginning.
- Additional functionality available? Yii’s collection of extentions has made my life a lot easier, so when your selecting a framework its good to check up on its extensibility using already pre-coded extensions. after all you don’t want to reinvent the wheel right?