Tuesday, November 18, 2008

How to choose a PHP Framework (Comparison)?

First of all, there is more than a dozen of PHP framework available nowadays (it’s bad that it make decision making more difficult; it’s good that it makes them more competitive). So, how do I know which one is better?

Firstly, I would go for some overall reviews (but most of them are outdated) and feature comparisons, where the established one would usually have more or less the same feature (but it helps me to pick the top 3). Personally, I think it's the style, syntax, approach and "feel" rather than pure features that sell the framework. I think Rail-styled (MVC) and lighweight framework (with flexibility), and simple syntax (easy to use) is the current trend. I am not very fond of Templates (used php for god sake, why restrict yourself!), a little bit of ORM is good (not too much though).

Secondly I need to use Google Trend to find out which is more popular to ensure support and long term continuity of the product.


Thirdly, I need to dwell compare between the top 3 framework, such as CodeIgniter vs CakePHP, CakePHP vs Zend, CodeIgniter vs Zend, and etc.

Forthly, I will dwell into areas which I am specifically concern and emphasis, such as flexibility, performance and etc.

Finally, give it a spin to at least 2 of them to get a feel of it (the begginner's tutorial play a very important role for new recruit).

Once you are hooked on one of the framework, it would be too late to change due to the learning curve and effort invested to develop codes for the framework. For better or worst, I am married to my choices made years ago.

About 2 years back I had chosen CakePHP, which had work pretty well for me so far (except that I am bugged by the performance comparison review lately, but I am hopeful the built-in caching would help to solve that). Perhaps CodeIgniter is the new ace, but CakePHP is pretty well established, and I dislike the style of Zend Framework.

1 comment:

Anonymous said...

As a web development student, I have no idea what you're talking about. Looks like I've alot of things to learn from your blog :)