Popular PHP Frameworks for everyday use

During my almost three years in web development i have tested and worked for various projects  with several PHP frameworks. Every framework has its power features and of course drawbacks. Out there they are many more other frameworks but these for me are the so called mainstream frameworks. After that little introduction lets begin with… Of course CakePHP. 

CakePHP

CakePHP for PHP frameworks is like Apple in computer world. It is very cool and trendy to develop web sites with Cake and of course it’s a piece of cake. In addition to the trend is the fact that CakePHP is porting features from Ruby on Rails in PHP.

So inspired by the trend and all the talks in web development forums i gave it a try. But after 3 or 4 days intense work and learning i found that CakePHP is not that shiny knight everybody loves.

During my tests i encounter several problems and i found that Cake doesn’t have good documentation and i think that documentation is a MUST for such a popular framework.

I tried Google Groups and there i found the answers i have been looking for, but i have already lost two days. CakePHP have some very strong and appealing feautures for rapid development if you have time and patience.

Cons

  1. Backward incompatibility
  2. No documentation, but improving
  3. It is still PHP 4 framework
  4. If you don’t have database you still must create dummy model

Pros:

  1. Active record pattern
  2. Friendly community
  3. MVC / Model – View – Controller /

Codeigniter

Codeignter is my personal favourite for small and medium sized web sites. It has great documentation, great and responsive community and in 80% of the cases,  it is the perfect tool for the job.

But when I tried to build some advanced features using two-dimensional array I had to overwrite some code in Codeigniter’s core.

Finally Codeigniter is using one CI super object, that is carying a lots of stuff all the time. If I have to develop web applications where speed and performance are critical I will think very carefully about implementing Codeigniter .

Cons:

  1. Again – it is not native PHP 5 framework
  2. CI super object

Pros:

  1. Great documentation
  2. Very easy for developing web sites
  3. Short  learning curve

Symfony

Symfony is the so called enterprise framework. It has almost perfect documentation, but for me it has too many third party modules that are slowing up development process and the overall framework performance

If you want to use Symfony you must gain additional knowledge in Propel and Creole . Symfony automates some of our development tasks with its  great PHP code generator.

After a little research about Symfony overall performance here and here i decided not to use Symfony for now.

Cons:

  1. Low Performance
  2. Long learning curve

Pros:

  1. Great documentation
  2. Active community
  3. Great code generator

Zend Framework

As you can guess Zend Frameworks is created by Zend – the PHP company. Zend is loosely coupled component library and you can use as many components as you wish.

If you stay away from Zend autoloader you can easily achieve great application performance. Zend framework can be extended very easily.

Cons:

  1. Requires intrermediate PHP knowledge, cannot achieve anything out of the box

Pros:

  1. Again Great documentation
  2. Full PHP 5 support
  3. Great performance
  4. Web Services support

Right now I am developing my applications using customized  Zend Framework for big projects and Codeigniter for the smaller projects.

In my next post i will write about Full stack vs. Loosely coupled frameworks, so stay tooned.

  1. Thank you!

  2. A lot of things are improved in CakePHP already like

    >>If you don’t have database you still must create dummy model This is not true anymore you can do this To have a controller without a model/database just put var $uses = array(); inside your controller

    >>No documentation, but improving This is not true anymore this has improved already.

    Also for fast response on your queries about CakePHP the best way is to go to #cakephp on irc.freenode.net

    >>It is still PHP 4 framework You can use CakePHP in PHP 5

Leave a Reply