Development

Discussing PHP Frameworks: What, When, Why and Which?

July 26th, 2009

What is a PHP Framework?

PHP is the world’s most popular scripting language for many different reasons – flexibility, ease-of-use, among others – but often times coding in PHP, or any language for that matter, can get rather monotonous and repetitive. That’s where a PHP framework can help.

PHP frameworks streamline the the development of web applications written in PHP by providing a basic structure for which to build the web applications. In other words, PHP frameworks help to promote rapid application development (RAD), which saves you time, helps build more stable applications, and reduces the amount of repetitive coding for developers. Frameworks can also help beginners to build more stable apps by ensuring proper database interaction and coding on the presentation layer. This allows you to spend more time creating the actual web application, instead of spending time writing repetitive code.

The general idea behind the workings of a PHP framework is referred to as Model View Controller (MVC). MVC is an architectural pattern in programming that isolates business logic from the UI, allowing one to be modified separately from the other (also known as separation of concerns). With MVC, Model refers to data, View refers to the presentation layer, and Controller to the application or business logic. Basically, MVC breaks up the development process of an application, so you can work on individual elements while others are unaffected. Essentially, this makes coding in PHP faster and less complicated.

Why Should we use a PHP Framework?

Developers should utilize PHP frameworks for various reasons, but the number one reason is for speeding up the development process. Reusing code across similar projects will save the developer a substantial amount of time and effort. A framework offers pre-built modules for performing tedious coding tasks, so the developer can spend their time on developing the actual application rather than re-building the foundation with each and every project.

Stability is another big reason developers are utilizing frameworks. While simplicity is one of PHP’s greatest assets, and the reason many people prefer to use this scripting language, it can also be one of its biggest downfalls. It’s fairly easy, especially for beginners, to write bad code and not even realize it. With PHP the application will often times still work, but unknowingly you may have opened up a large security hole in your coding that may be susceptible to attacks. It’s important to remember that PHP is a very forgiving language, so it’s even more important to make sure to tie up any loose ends in your coding – even if the application seems to be working properly.

Finally, the availability of PHP frameworks is extensive, and there are many different frameworks to choose from. You can even create your own, although many developers elect to choose from any of the most well-known frameworks due to their popularity, large support teams, and their forums/communities that allow you to interact with other developers who utilize the same framework. As a side note, you should always examine your project to first decide if you should even use a framework or not. Some questions you should ask yourself are: Will it save you, and anyone else who may use it, time and effort? Will the app perform better? Will it improve stability? If you can answer yes to any of these questions, a PHP framework may be the right answer for that particular project.

When to use a PHP Framework?

This is a common question amongst experienced and beginner developers alike, and there’s really no direct answer to the question. For many beginners, a framework will offer greater simplicity as well stability, so it may be a good idea to use PHP frameworks whenever possible. It will help reduce or eliminate bad coding and speed up the build process.

On the other hand, many experienced PHP programmers see frameworks as tools for “weak” programmers that don’t understand how to write good, clean code. Whether this is true or not is up for debate, but the fact of the matter is that PHP frameworks are a tool that can be used to save time and tighten up one’s coding.

When working on a project with tight deadlines, utilizing a PHP framework is a huge benefit that can greatly speed up the coding process. So if you’re in a time crunch, PHP frameworks can be very beneficial to you. Another instance when PHP frameworks should be a consideration is when you’re working on projects with substantial amounts of monotonous coding, because it will help make the job much less tedious.

What to Look for in a PHP Framework?

There’s plenty of options available to anyone who may be searching for PHP frameworks, and there’s even the option of creating your own, although that’s only recommended for PHP experts. When searching for the the PHP framework best suited for your needs, it’s important to keep in mind who will be using and/or modifying your applications from top to bottom. If there are many people who will be using the application, it may be best use a popular PHP framework that many developers are familiar with. On the other hand, if you wish to build web applications for your own personal use, you are better off choosing any PHP framework that you’re comfortable with – whether it’s popular amongst the developer community or not.

Various factors to search for in a PHP framework include: easy of use, rapid development/performance, popularity amongst other developers, strong features, and support/forums. It’s recommended to try out several PHP frameworks when you’re first starting out in order to find one that suits your needs the best. All frameworks are slightly different and have varying strengths and weaknesses, for instance Zend Framework has been around since V3 and is full of features plus has an extensive support system in place since it has been around for so long. On the contrary, CakePHP is another PHP framework which is younger than Zend Framework and has slightly less of a support system in place (although support for this framework is growing rapidly), but is much more user-friendly and easy to use.

As you can see, each type of PHP framework has its own advantages, so it’s best to use a bit of trial and error to figure out which one will work the best for your needs. Another excellent way of choosing a framework is to consult your colleagues in the development community to see which ones they prefer. Those who have actually used a specific framework will be able to inform you of the ease-of-use, features, support availability, scope of the community surrounding the framework, and possible shortfalls.

Most Common Mistakes When Using a PHP Framework

Mistakes are possible in any type of programming, but PHP frameworks help to limit these mistakes greatly by providing good quality code that is tried and true from the start of the development process. Repetitive coding seems to promote mistakes now and then, and frameworks all but eliminate that problem.

That being said, there are still things to be careful of when utilizing any PHP framework. For instance, unless you are an expert in PHP programming, you should always opt for using a popular framework with plenty of support and an active user base (see below for examples of popular PHP frameworks). There are many frameworks out there that have little or no support, and/or they were created by individuals with limited knowledge of PHP. These types of frameworks can cause your applications to not function properly, and worse case scenario, could cause catastrophic security issues with your website.

Another somewhat common mistake is not ensuring your database and web server is compatible with the particular framework. For example, Seagull PHP Framework recommends the following configuration:

  • PHP: PHP 4.3.0 is the minimum, later versions work fine, as do versions PHP 5.1.1 and above. Avoid anything in the 5.0.x series
  • MySQL: MySQL 4.0.x, 4.1.x and 5.0.x are all supported. You can also use 3.23.x.
  • Apache: Seagull works fine with 1.3.x and 2.x series of Apache

If you don’t meet these requirements, you won’t be observing the best performance possible from your chosen framework. Even if you are an expert in PHP, you should always go over the documentation of the framework to confirm compatibility before trying it out.

Similar to the previously mentioned common mistake, not following the recommended installation process of your PHP framework can also give you some headaches. Take Seagull as an example again – the Seagull wiki has a detailed rundown of the framework’s installation process that has several key steps that are sometimes easily overlooked by careless or unsuspecting developers. The key is to take your time setting up the framework and follow the installation instructions to the “T” – The time you’ll save actually developing applications later will more than make up for the few extra minutes spent installing the framework correctly the first time.

What are the Best PHP Frameworks Available?

Within the past few years as PHP has evolved as the scripting language of choice by most developers, there have been an explosion of PHP frameworks to hit the scene. There is a great debate about what the best PHP frameworks are, because the simple fact is that not every framework is built for everyone. Here’s a quick rundown of five of the best and most popular choices right now:

The Zend Framework

PHP Frameworks Post Image

The Zend Framework has a massive following amongst the development community and is focused on web 2.0 style applications. Because of their massive following, extensive support and active user base, Zend is referred to as “The PHP Company”. Zend is one of, if not, the most popular PHP frameworks available today. It has robust features that are built for corporate-level development, and it requires an extensive knowledge of PHP.

CakePHP

PHP Frameworks Post Image

CakePHP is a great choice for beginners to advanced PHP developers. It’s based on the same principles that Ruby on Rails is designed around, and it’s heavily focused on rapid development – making it a great framework to be used for rapid application development. Its rapidly growing support system, simplicity, and scalability make CakePHP one of the most popular PHP frameworks available today.

Symfony

PHP Frameworks Post Image

Symfony is aimed more at advanced developers who’s main objective is to create enterprise-level applications – most notably Askeet and Yahoo! Bookmarks. This open source PHP framework is full of features and can do it all, but it’s main downfall is that it is a bit slower than other frameworks.

Codelgniter

PHP Frameworks Post Image

Codelgniter is well-known for its ease-of-use, performance and speed. Unlike Symfony, this PHP framework is ideal for shared hosting accounts or for when you want a framework with a small footprint. It offers simple solutions, and has an extensive library of video tutorials, forums, a user guide and wiki available for support. Beginners should consider using Codelgniter.

Seagull

PHP Frameworks Post Image

Seagull is a well-established PHP framework used for building web, command line and GUI apps. It is an extremely easy to use framework that is ideal for beginners to advanced coders. For beginners, Seagull features a library of sample applications that can be customized to fit your needs, and for experts, Seagull offers a host of options – including best practices, standards, and modular codebase – for building web applications quickly and easily. Seagull has an active developer community and plenty of support documentation in place as well.

Summary

PHP frameworks are a great way for developers of all skill levels to reduce the need for repetitive coding, speed up the development process, and to ensure proper coding when creating web applications. This not only speeds up the development of rich applications, but it also tightens up PHP security by reducing the risk of security holes in your coding.

While some expert PHP coders do not feel the need to use frameworks to develop web apps, they can still be an advantage in situations where rapid development is necessary, such as under tight deadlines. And for beginner to intermediate developers, frameworks can enhance the PHP learning process while promoting good coding practices and reducing bad coding, which is common in PHP due to its “forgiving” nature.

There are many PHP frameworks available today, and thus developers are sure to find a framework that fits there needs in terms of features, support, speed, scalability and more. Some of the top PHP frameworks used by developers today include: The Zend Framework, CakePHP, Symfony, Codelgniter, and Seagull.

Author: Joel Reyes

Joel Reyes Has been designing and coding web sites for several years, this has lead him to be the creative mind behind Looney Designer a design resource and portfolio site that revolves around web and graphic design.

Write for Us! We are looking for exciting and creative articles, if you want to contribute, just send us an email.

The jungle is alive: Be it a collaboration between two or more authors or an article by an author not contributing regularly. In these cases you find the Noupe Editorial Team as the ones who made it. Guest authors get their own little bio boxes below the article, so watch out for these.

Tags:

232 comments for „Discussing PHP Frameworks: What, When, Why and Which?
  1. Win on July 26th, 2009 at 4:22 am

    I use KohanaPHP.

    • EllisGL on July 26th, 2009 at 12:18 pm

      Same here!

    • Matt on July 26th, 2009 at 2:54 pm

      Me too. Version 3.0 is on the horizon – looks promising.

    • Alex R on July 26th, 2009 at 3:05 pm

      Me too.

    • Calle Kabo on July 27th, 2009 at 12:37 am

      Check!

    • AbotherFlava on July 27th, 2009 at 9:32 pm

      Kohana code changes wayyyyyyyyyy to much it would be a great framework if the people there would get things organized…

    • Pablo on July 27th, 2009 at 11:31 pm

      +1 for Kohana. Originally a fork of CodeIgniter so it’s lean, mean and incredibly fast unlike the other bloated frameworks. It’s also based on PHP v5. Real PHP programmers love it, newbies find it very difficult though and will probably end up with CakePHP instead.

      • abhi.. on July 28th, 2009 at 8:27 am

        I am using “KOHANAPHP” too after “CODEIGNITER” for its php 5.X support.

      • David on August 17th, 2009 at 7:14 am

        I disagree that it’s ‘very difficult’. The framework itself just ‘makes sense’. Documentation can be a little sparse in places (I’m looking at you, ORM!) however with a little bit of patience, the pay-off is well worth it.

        .. and I’m writing up some ORM tutorials to ease the path for others!

      • ReaderX on April 7th, 2010 at 11:25 am

        If the documentation is sparse, someone should be filling in the gaps since it’s an open source project. I’m looking at you, Complaining David!

      • Danilo on May 12th, 2010 at 9:47 am

        +1

      • Ummmmm on October 9th, 2010 at 5:45 am

        David clearly said he was writing tutorials. One merely need reread his post to see that.

      • Kemo on November 6th, 2010 at 3:51 pm

        Another Kohana fan :)

      • morrisen on February 14th, 2013 at 10:29 am

        I better use CodeIgniter because simple and fast .. not difficulty like zend framwork

    • Rob Searles on July 29th, 2009 at 6:10 am

      I’m a Kohana PHP user too, surprised it wasn’t mentioned in this post

      • Kiall on July 30th, 2009 at 11:54 am

        another KohanaPHP user!

      • saranraj on July 22nd, 2010 at 11:57 pm

        I also kohanaphp.. I am using kohanaphp from last two years….. its very simple and sample than other php frameworks….

    • alex on July 31st, 2009 at 10:31 am

      Make that another happy Kohana user!

    • Pablo on August 6th, 2009 at 7:10 am

      I’m learning Kohana right now. It’s a great framework and 100% compliance with PHP5.

    • David on August 17th, 2009 at 7:12 am

      Another vote for Kohana – quite simply the easiest-to-learn framework I’ve yet discovered. It just ‘makes sense’, and takes the pain out of almost every aspect of site creation.

    • thiswayup on August 5th, 2010 at 3:38 am

      Me Nth as well. Code igniter without all the barriers.

  2. superdit on July 26th, 2009 at 6:09 am

    I move from CakePHP to CodeIgniter, cause cake a bit bloated,
    now i found doo framework http://doophp.com and it’s say faster than codeigniter even from yii, what a confusing choice …

  3. Angelfire on July 26th, 2009 at 6:17 am

    Excellent post for begginers, I need it.

    Another excellent post, could be with examples of each framework :P

    Thanks so much.

    • Yoosuf on August 10th, 2009 at 2:42 pm

      Why you need samples, you can find better samples at the Official website of the respective Owners (devs)

  4. Maarten Tibau on July 26th, 2009 at 6:27 am

    Really nice read! I myself use Zend Framework, it’s not a really easy framework to start with, but once you get the hang of it, it’s just great!

    • Kumar Rashee on July 26th, 2009 at 12:48 pm

      I recently bump into DooPHP. And I am starting to using it as a MVC base while using Zend Framework long list of components with it since they both use the same new BSD license. Great couples!

      • Johnson on July 27th, 2009 at 12:19 am

        I think it’s great using it with ZF collection of useful classes. I never like to use ZF as an app core for MVC, it’s too verbose and slow for me.

    • Brian Reich on July 27th, 2009 at 9:03 pm

      I’ve been using Zend Framework since it’s very early betas a few years back. It’s a great framework but it’s never-ending development process is both a blessing and a curse. We’re almost to version 2.0 and things are still constantly changing with core parts of the framework such as MVC.

      • Kumar Rashee on July 28th, 2009 at 3:31 pm

        That is why I don’t use Zend Framework MVC. I tried others like DooPHP or CI for the core and use Zend as addon features.

  5. Page Gardens on July 26th, 2009 at 7:05 am

    Useful read!

  6. Alex Kachayev on July 26th, 2009 at 7:21 am

    I usually use ZendFW in my project. But sometimes I use some classes and systems from Kohana (it has rather useful ORM).

    • Mark on July 26th, 2009 at 9:36 am

      IMO, the ORM in Kohana is incomplete and not the best…

      • chan on October 28th, 2009 at 9:40 pm

        It is the best

  7. Logan on July 26th, 2009 at 10:03 am

    I would recommend CodeIgniter to anyone, advanced and beginners alike.

    Also avoid ORM (ActiveRecords) whenever possible, it doesn’t really help, it will just slow things down (up to 30% performance hit in some cases) and add unnecessary complexity (SQL queries are more flexible and powerful).

    • quyancong on August 10th, 2009 at 12:04 pm

      I’m using condeigniter.Can I make a friend with you ,i’m from china.

      My MSN account number is ‘quyancong@hotmail.com’.

    • Jamie on October 16th, 2009 at 4:02 pm

      I don’t think you fully understand why ORMs are useful and excellent to use with frameworks.

    • enache tudorel on August 3rd, 2010 at 11:58 pm

      i use Codeigniter too.
      good tip with Activerecords. I won’t use it any more.

  8. Tim Copeland on July 26th, 2009 at 10:09 am

    If you’re doing any form of content management within your app, the Sapphire Framework (http://www.silverstripe.org/sapphire/) is worth looking at. It sits behind the SilverStripe CMS and plays nicely with The Zend Framework.

    • Ummmmm on October 9th, 2010 at 5:57 am

      How do we know this is true? You’re the co-founder and business dev director of the company right now. Not exactly non-partial. The comment rules do say not to spam or link drop or advertise. Why would I trust your CMS is so wonderful now?

  9. Diego Toala on July 26th, 2009 at 10:38 am

    I use Yii framework, easy to use, flexible and extensible.
    http://www.yiiframework.com/

  10. dude on July 26th, 2009 at 11:29 am

    Another important thing to think about when evaluating frameworks is how tightly-coupled the individual pieces of a framework are. The more tightly-coupled the pieces are, the harder it will be to migrate away when something better comes along and/or community/support disappears. Steer clear of frameworks that force you to use a specific application structure, templating library, or ORM. Loosely-coupled, liberal frameworks such as ZF are really just collections of useful classes, but you’re not forced to use any of them.

  11. webmasterdubai on July 26th, 2009 at 11:52 am

    i using codeigniter for the development of my project past 9 months and having no problem and issue with any of my projects, best thing in codeigniter is the community forums which help alot the starter of CI to find solutions to their problems, im also an active member of the forum.

  12. Nobody on July 26th, 2009 at 12:04 pm

    PHP framework does not neccessarily mean MVC. That’s just the most popular model.

  13. Oren on July 26th, 2009 at 12:10 pm

    I agree with the guys that talked about ORM.

    Anyway, nice post, I missed some more technical comparison between the various FMs however.

    A tip of advice: stay away from frameworks that does not support full OOP though they might be considered coder-friendly.
    With PHP5 around, writing non-OO is a sine.

    • Jake on August 3rd, 2009 at 2:02 pm

      Why? Writing OO for the sake of writing OO is an even worse sin! Fact is you can write functional code with an object oriented approach just fine – it’s all in how you abstract and understand your application.

      Problem with that particular piece of advice you gave there is that people who follow it without question end up writing horrible OO code, when in fact they could have done a lot better writing functional code.

      The purpose must rule. All principles are ruled by the purpose. Not ever the other way around. That means only write OO if you motivate it by the purpose of the application, not doing it as unquestioned principle.

      • Romain Ruetschi on September 13th, 2009 at 5:36 pm

        Can you tell me how you can have an object-oriented approach when there is no classes and objects involved in the code ?

        *Object*-oriented means what it means.

        But you’re right that some people (especially the beginners) might write better functional code than OO one.

  14. Greg on July 26th, 2009 at 1:26 pm

    I use LimeVC (http://lime.louisstowasser.com). It’s an MVC framework, has support for plugins, template engine, caching and an SQL framework for dynamic queries.

  15. Piotr Nalepa on July 26th, 2009 at 2:45 pm

    Hi,
    thanks for the pieces of infos. I’ll try to learn CakePHP Framework. Your article made me to try it.

  16. Matt on July 26th, 2009 at 2:53 pm

    I’m very surprised that you missed off KohanaPHP. I spent almost two months analysing and researching stable PHP frameworks that were available at the time. In all the tests that i found, KohanaPHP came out top in terms of performance. They have a great community and because it’s based on CodeIgnitor (in fact it was originally a fork of CI), it comes with most of the benefits of CI.

  17. Ian on July 26th, 2009 at 3:15 pm

    Vote to KohanaPHP as well from a 5 years experienced PHP programmer.

  18. mihai on July 26th, 2009 at 3:21 pm

    I’m surprised you did not mention Joomla. It was the first MVC framework I worked with, and it was delightful to use.

    It has a big community of developers and follows a good set of standards.

    • superdit on July 26th, 2009 at 6:17 pm

      are you sure joomla is a framework??

      • ASIF MEHMOOD on January 8th, 2010 at 3:42 am

        jhoomla is not a framework its Content management system(CMS).

    • Rajesh on July 27th, 2009 at 7:40 am

      @Mihai

      FYI, Joomla is a Content Management System, not PHP framework..

      • Iongion on July 27th, 2009 at 12:24 pm

        Yes,joomla is a cms,but it also is a framework,check the homepage of joomla

      • JustAKid on July 30th, 2009 at 8:16 am

        Joomla is primarily a CMS but it definitely has a fully fledged PHP framework underlying it which you can use to extend the CMS or build other non-CMS related apps. Personally, if I’m building something highly customised from scratch, I prefer Zend Framework but almost anything is also possible with Joomla.

  19. Vincent on July 26th, 2009 at 3:30 pm

    This article might be useful because it contains links to some popular PHP frameworks, but there is much inaccuracy in the article itself.

    For example, Zend Framework has not been around since V3 (it’s focused on pure PHP 5 support – which is also something to take into account, because CodeIgniter e.g. also tried to support PHP 4 meaning it doesn’t take as much advantage of new features), and CakePHP is older than ZF. I stopped reading about there but spotted some more inaccuracies in scanning, so I would recommend people to not attach too much value to this article.

  20. Shahriat Hossain on July 26th, 2009 at 3:35 pm

    I prefer to use CodeIgniter as a beginning level and the Zend Framework for the advanced level . Actually I use both of them because CodeIgniter helps me to start with a short-time project and Zend helps with a long-time project as their no. of features needs. So you the guys can also try it out with your project types.

    • Kris Hardy on July 26th, 2009 at 7:23 pm

      We do a similar thing with our projects. CodeIgniter gets the job done quickly for smaller projects, but we’ve developed an internal framework based off Zend Framework for our big projects.

    • Tison on September 11th, 2009 at 11:47 pm

      Very helpful, i believe after this article, for our short term projects – we’re looking at either cake or codeigniter. I’ll keep zend in mind for long term development. Thanks @shariat

  21. Rob Hofmeyr on July 26th, 2009 at 4:04 pm

    Is it just me or is this a terribly inaccurate article? Didn’t get past the third paragraph so can’t comment on the rest of it but your understanding of frameworks and MVC is seriously flawed.!

    The general idea behind the workings of a PHP framework is referred to as Model View Controller (MVC).

    This sentence makes no sense. The frameworks you’ve listed employ the MVC design pattern – it is by no means the “workings” of a framework. No one ever said a framework had to follow MVC principles.

    With MVC, Model refers to data, View refers to the presentation layer, and Controller to the application or business logic.

    No, no no! The Model contains business logic, rules and methods for manipulating data – not “data”. The controller is for routing ONLY, it should contain as little business logic as possible. Look up thin controllers, fat models.

    Please research your topics more thoroughly before posting.

    • Sean on July 29th, 2009 at 10:26 am

      Not sure which framework you’re using, but they’re not all quite like that… this article was fine.

    • Jake on August 3rd, 2009 at 1:56 pm

      I agree with you Rob. A PHP framework doesn’t have to implement the MVC pattern in order to be a framework, as the author claims. Fact is, not all PHP frameworks implement the MVC pattern. The paragraph on MVC was the weakest part of the entire post, which gave a good picture, but lacked serious research.

  22. Burak on July 26th, 2009 at 6:19 pm

    if anyone looking for easy to use and NOT an MVC framework, check flourish -the PHP unframework- (flourishlib.com)

  23. Michel Zanini on July 26th, 2009 at 6:26 pm

    I think Symfony is more than the author said. For example, it has the better documantation of all frameworks above.

    • Akky on July 27th, 2009 at 9:00 am

      Agreed. Symfony is not slow as mentioned above. Comparing fastness by hello world is not fair to the framework for people building serious high traffic applications.

      • Ian on August 5th, 2009 at 10:58 pm

        I Agree with this. Symfony is an amazing framework.

    • Duane Gran on July 28th, 2009 at 1:36 am

      Good point. When I was evaluating frameworks well over a year ago the documentation advantage of symfony sealed the deal for me. While I work with other frameworks I’ve continued to be impressed by the quality of the examples in symfony.

      The speed issue is something that is being addressed in Symfony 2.0, but even so most of the execution time remains in the model logic rather than the framework.

    • TheWorkingMan on July 28th, 2009 at 12:26 pm

      I think symfony is a very good framework next to Zend probably. I just the hope the speed issues gets resolved immediately. I am using it and loving it!

      • nivas on December 2nd, 2009 at 1:10 pm

        i agree.

    • Dan on July 26th, 2010 at 7:38 am

      Another thumbs up for Symfony here!

  24. Brian on July 26th, 2009 at 6:33 pm

    I use Madeam (www.madeam.com). It’s wicked lightweight, gets the job done.

  25. hariharan on July 26th, 2009 at 7:29 pm

    I tried cakephp and it sucks in terms of developing web 2.0 applications especially when establishing through associations like Ruby on rails. Also the way it produces query pattern sucks like anything. Requesting your view of PHP on Trax. Is it alternative for RoR developers???

  26. Pau on July 26th, 2009 at 7:32 pm

    What about Akelos?

    • Johnson on July 27th, 2009 at 12:20 am

      Akelos is horribly slow…

  27. Patrick on July 26th, 2009 at 8:34 pm

    Very nice review of some of the options available, this is the first time I’ve even heard about seagull. I will offer my opinion: In most cases a php framework is flat out over kill. While you have written that things like cakephp are “easy” to use and “fast” to develop with, I have an opposite opinion: I think they are heavy weight and add another level of complexity that in most cases just isn’t needed. Every client is always unique, and an experienced programmer will always end up with a leaner meaner solution when its built from the ground up. /opinion

    • Matt on July 26th, 2009 at 9:00 pm

      It’s logic like this that will always keep php in the world of commodity web development.

      • Patrick on July 27th, 2009 at 1:41 am

        I believe you have that backwards. If the majority of developers all used a small selection of frameworks you’d have a commodity. Lightweight custom code is the very opposite. All clients are unique. To approach it otherwise is to create a commodity web. While I respect your opinion, I have to disagree entirely.

  28. NetChaos on July 26th, 2009 at 8:46 pm

    Guys you should try Kohana, its a really interesting project.
    http://kohanaphp.com

  29. Matt on July 26th, 2009 at 8:57 pm

    You guys should check out Python. Django, Turbogears, Pylons, Werkzeug, Paste and CherryPy. They are all pretty solid. It’s orms like SqlAlchemy and template languages like Mako that get the big players using python.

  30. Johannes on July 26th, 2009 at 9:36 pm

    Yii is, by far, the best PHP framework I’ve ever worked with. Check it out at http://www.yiiframework.com/ . Seriously. Do it. It’s awesome.

    • Rifqi on January 6th, 2010 at 12:30 am

      im using Yii Framework

  31. Matt on July 26th, 2009 at 9:40 pm

    For those who don’t know, Kohana is a spin-off of CodeIgniter and is maintained by the open-source community (unlike CodeIgniter, which is controlled by the company that developed it–which is not necessarily a bad thing, especially if like the idea of having a support team to contact). I took a good look at both frameworks and Kohana looks a little better, but I’m biased toward pure PHP5 applications (it’s time to kiss PHP4 goodbye! It’s tremendously limited compared to PHP5)

    For my latest project I’m using the Zend Framework, and for the most part I love it. Some things may not be obvious at first but there are a lot of great books out there that cover it (check out the APress series).
    It’s really robust and has tons of useful components that have been developed in a highly professional manner, and the fact that some of the greatest PHP experts out there use it for their largest projects is definitely a good recommendation.

    My impression from a long history of programming in PHP and trying out various frameworks is that Zend is a good recommendation for anyone other than an absolute beginner–it’s just that you may need a book to help you along if you’re not real familiar with object-oriented programming. In the past, I shied away from Zend Framework because I heard it was complicated and difficult to learn, but I realized upon using it that it makes a lot of sense and you can get the hang of it pretty quickly. I think the only reason some people find it very difficult to understand is that it is so highly object-oriented, but if you want to take your programming to the next level I think that’s something you should learn thoroughly anyway.

  32. Rick on July 26th, 2009 at 9:54 pm

    I have used both Cake and CodeIgniter, they are very similar (in my opinion) but more importantly they are very popular. This allows me outstanding documentation and I don’t have to worry about another programmer taking over, because they really should be familiar with these two.
    just my two cents
    Great article (as usual)

  33. Mike Britton on July 26th, 2009 at 10:27 pm

    I’ve used PureMVC for PHP with success. http://trac.puremvc.org/PureMVC_PHP It’s easy to install, configure and port to other platforms. There’s a JavaScript port so you can have the same paradigm on both client and server!

    • Bruno Lemos on May 25th, 2010 at 6:32 am

      I need PureMVC examples.. the one given in the official website I guess is too strange/simple/dunno…

  34. Gafitescu Daniel on July 26th, 2009 at 10:47 pm

    CodeIgniter is framework of choise for me.

  35. Tekno on July 26th, 2009 at 10:57 pm

    nice article, but I’ve used this framework does not exist. I’m using Drupal framework.

  36. Sean McCleary on July 26th, 2009 at 11:43 pm

    At my job I have been using CakePHP for the past year. Having a Rails background before getting to know Cake, made it very obvious to me that Cake was trying hard to be a Rails clone. Cake and Rails have gone their separate ways, but there are still many times that it reminds me of Rails 1.1. Cake is absolutely horrible by comparison to Rails. I do not like CakePHP and I will never recommend it to anyone. Aside from being a lackluster framework, please google some benchmarks. Cake has abysmal performance. I have used Symfony and I liked it much more than Cake. If you are looking for great frameworks please consider frameworks that are not PHP centric such as Rails or Django.

    • Mariano Iglesias on July 27th, 2009 at 9:16 pm

      Your post makes me realize you have no clue how to develop with CakePHP. CakePHP was *inspired* by Rails several years ago, but since then has developed its own style, focused in rapid PHP development. If you expect to see the same stuff you saw on Rails, stay with Rails.

      CakePHP has great performance, amongst the top of all PHP frameworks. Further yet, new versions increase the performance even further, putting it at the top of its kind. Now, if you have NO CLUE how to develop a CakePHP application, if you DONT FOLLOW best practices, you’ll probably end up with “abysmal performance.” Same thing would happen with Rails, Symfony, or any other framework for that matter.

      So next time, consider *learning* the framework before making such assessments, or just stay with the one you liked in the first place.

  37. Jon on July 26th, 2009 at 11:43 pm

    Nice article, however CakePHP and Codelgniter are horrible to develop with from a modular perspective. From an agency perspective Drupal has been our preferred framework and far superior IMO.

    • John Anderson on July 27th, 2009 at 9:28 pm

      From our “agency perspective”, we’ve used CakePHP since 0.9.2, in global apps with high load, with no complaints.

      Drupal isn’t even an application framework, so I’m not sure how it could be more flexible than any of the other solutions mentioned the article.

      • Jake on August 3rd, 2009 at 1:52 pm

        That’s not exactly true. Drupal is a framework more than anything else. It comes with basic CMS capabilities but Drupal itself isn’t a CMS – it is a framework people often use to build CMSes! Drupal is one of the most powerful platforms for web development, you can essentially build any web application on it and that’s why we Drupal developers love it so much. Give it a try!

        Here’s a video Q&A, “what” and “why” on Drupal, featuring some of the world’s leading Drupal developers:
        http://vimeo.com/5490973

  38. Ahmed on July 27th, 2009 at 1:39 am

    im using Zend Framework

  39. Josh Davey on July 27th, 2009 at 6:31 am

    Check out http://madeam.com. Faster than any of the frameworks listed.

  40. Jesus A. Domingo on July 27th, 2009 at 10:13 am

    Another good framework that’s currently being developed is Recess. Keeping a good watch on this one and looks really interesting.

    • AbotherFlava on July 27th, 2009 at 9:25 pm

      YUP! Recess is going shake thinks up…

  41. Michal Vitasek on July 27th, 2009 at 10:57 am

    And what about http://nettephp.com/en/ :-)

  42. Junni on July 27th, 2009 at 8:28 pm

    I’m a big fan of the Symfony Framework and have little experience in CakePHP.

  43. Q-efx on July 27th, 2009 at 8:39 pm

    Man, no one take a look on yii ( http://www.yiiframework.com ) Version 1.1 will kick ass :)

  44. Asher on July 27th, 2009 at 8:51 pm

    Another one to check out is NOLOH (http://www.noloh.com). Unlike other frameworks, it allows you to develop sophisticated web sites and web applications easily and intuitively in a single language, PHP.

  45. Steve on July 27th, 2009 at 8:55 pm

    I have used and love PHPonTrax great framework. Better than any the others I’ve used and I’ve tried em all.

  46. Michael Newton on July 27th, 2009 at 10:49 pm

    I believe Zend call themselves “the PHP Company” because they wrote the parser for PHP 3 and 4.

  47. Emanuele on July 28th, 2009 at 4:35 am

    I use Yii Framework :) http://www.yiiframework.com

  48. Gusep on July 28th, 2009 at 2:20 pm

    I’d like to put to your attention also Sapphire framework. Coming also with the CMS (Silverstripe). The documentation is quite good and there is also a helpful community of people around.

  49. Werner on July 28th, 2009 at 2:56 pm

    No, they didn’t wrote only the parser for PHP but contributed with several other modules to the development of PHP:

    http://www.php.net/credits.php (see: Andi Gutmans, Zeev Suraski)

  50. Arafat Rahman on July 28th, 2009 at 3:14 pm

    I like code igniter.

  51. quantro on July 28th, 2009 at 7:18 pm

    hm…
    nice article,
    i use this :
    1. Codeigniter,
    2. KohanaPHP,
    3. Zend Framework.

    I use all them (not for one application of course). it’s good if we can mix these framework.

    • trs21219 on August 5th, 2009 at 7:57 pm

      You can mix CI and Zend. Search for it on the CI forums. We do it here at work all of the time and it works beautifully. Take advantage of the Zend Libraries while using the speed of CI.

  52. Pieter Claerhout on July 28th, 2009 at 11:20 pm

    I’ve done a lot of apps with the Yii framework, and I must admit that it’s one of the better frameworks. I’ve also used Zend Framework and Code Igniter, but they are definetely not in the same league as the Yii framework.

    More information can be found on http://www.yiiframework.com.

  53. Josh Highland on July 29th, 2009 at 5:18 am

    I support CodeIgniter. It’s lean, its fast and doesnt require command line access like cake. CI – FTW!

    • TR on July 31st, 2009 at 11:16 pm

      Cake doesn’t require command line, its just an added feature. I’ve been using cake for a while and never touched the command line other than curiosity one time. CI is pretty sweet too, can’t go wrong either way!

  54. Stoosh on July 29th, 2009 at 7:23 am

    Very well written article, I personally use CakePHP however I think too many people use theses frameworks for the wrong reasons. As a shortcut to learning PHP.

    I can gurantee you a large portion of users that are implementing these frameworks couldn’t even write a basic database class.

    Also Josh Highland, you’re wrong about Cakes CLI, you most certainly do not have to use it.

  55. Sean on July 29th, 2009 at 10:24 am

    I use Yii – my first framework. It’s easy to learn, has great support, and has speed comparable to CodeIgniter with more features and PHP 5.

  56. micah on July 29th, 2009 at 11:40 pm

    Frameworks are good for learning and for fast development and iterations, but your readers should be aware that using any framework (even codeigniter) gives you a noticeable performance hit compared to straight php. The basics of mvc are not difficult to implement yourself with a little knowledge of mod_rewrite and judicious use of includes.

  57. Em on July 30th, 2009 at 2:25 am

    Great read! My favorite from the list would have to be CodeIgniter mainly for its excellent performance.

  58. Jaspal Singh on July 31st, 2009 at 6:02 pm

    Yes, well said, even I prefer to do custom php code instead of using php framework.

  59. Richard on July 31st, 2009 at 11:45 pm

    Good article. I am starting at PHP and it was really hard to understand why I would need to use the framework, but now it is getting easy to me. Thanks to this kind of articles.

  60. Mike on August 1st, 2009 at 1:40 am

    I dont use any framework. I am new to PHP. is DooPHP good and seems quite new on the shop.

    • Johnson on August 5th, 2009 at 1:14 am

      Mike, I just playing around with DooPHP and I find it very easy to get started along. Coding with it for a few days, I find that I can get a “clearer view” of my entire application. Nice stuff and I really like its KISS implementation. Much more easier and clearer than CI (in my experience.) If you use template engine, you can control what to be allowed in doophp view templates. Well it’s alternative, people on the forum had integrate a few others like Smarty with it real easy. http://doophp.com/forum

  61. mbi on August 2nd, 2009 at 6:40 am

    I use Yii Framework!

  62. Davinder Mahal on August 4th, 2009 at 4:45 am

    I’ve looked at several frameworks and a few years ago choose symfony. It is a brilliant framework and it’s amazing how fast you can build and deploy an enterprise level site.

    I don’t mean to offend anyone when I say this, but those who question any framework’s speed and performance, especially when comparing between Hello World! applications between frameworks themselves, or by writing a single script are in a nuts or in a different league.

    php frameworks are for those building real web applications – fully featured applications that run online – and are not to be used primarily by someone who just wants to have a few dynamic variables or a few lightweight database calls. The true difference is, are you building a simple web site or an application?

    As for other examples of enterprise-level high-performing sites, please do not forget that Delicious is built based on the symfony framework that serves millions of users.

    • Johnson on August 5th, 2009 at 1:16 am

      Symfony crash my VPS easily… hmm not a good option for me but might be good for people who use powerful servers

  63. Sven on August 4th, 2009 at 12:26 pm

    I’m also using Yii. In my opinion it’s much easier to learn than Zend and Symfony. It’s fast, it has really good extensions, great docs and easy to extend by yourself. The community is still small, but I hope it will grow in the next month.

    • Johnson on August 5th, 2009 at 1:17 am

      Yii is nice but I don’t like how they work with widgets which generate HTML/JS stuff?? I think we should leave the job to frontend designers. IMHO yii is not as easy as CI or Doophp

  64. Rad on August 6th, 2009 at 6:15 am

    SkinnyMVC rules! A simple MVC framework without all the libraries for non-programmers.

  65. Amar Jadhav on August 6th, 2009 at 12:52 pm

    Thanks for sharing information about PHP frameworks.

  66. Zac on August 7th, 2009 at 10:33 am

    Interestingly enough, I just started using CodeIgniter today! And I love it. Very easy to learn…

    • Brian Temecula on August 9th, 2009 at 1:13 am

      You have chosen wisely

  67. WorkerOnLog on August 7th, 2009 at 10:33 am

    Whenever I’m not making medium-sized sites from scratch, I tend to just go for a full CMS when I need a boost. WordPress, Joomla and of course Drupal are my favs. I’ve been using Drupal a lot in the past 2 years.

  68. ashish thakre on August 7th, 2009 at 12:13 pm

    ??is Kohana PHP framework and Zend frame is compatialbe with jquery
    is any issue in both the frame work for jquery

    • Jordan on August 17th, 2009 at 9:20 am

      jquery is a javascript library why would it care about what PHP framework you are using?

  69. Josh Davey on August 9th, 2009 at 1:36 am

    Check out Madeam PHP Framework: http://madeam.com

  70. vickie on August 10th, 2009 at 12:18 am

    There is a new php framework – DooPHP. They claimed to be the fastest MVC framework compared to CodeIgniter and Kohana framework and it designed for KISS lovers who dislike complexity.
    probably you could have a look on that?

  71. D factor on August 10th, 2009 at 5:45 am

    Awesome! I am a novice to PHP, I enjoyed the comments far more than the post!

    just from the comments i form an opinion : Kohana !

  72. Iulisloi Zacarias on August 10th, 2009 at 11:03 pm

    And… what about Prado Framework?

    http://www.pradodoft.com.br

  73. Bruno Cassol on August 11th, 2009 at 8:45 pm

    “With MVC, Model refers to data, View refers to the presentation layer, and Controller to the application or business logic.”

    Please learn about MVC before writing about it. PHP doesn’t deserve all the blaming, some script-kiddies that use it do.

  74. Boubacar on August 12th, 2009 at 8:51 pm

    For me Yii is the best. Strict OOP with an excellent AR implementation and a well designed architecture.

  75. Emmanuel DEMEY on August 14th, 2009 at 5:37 pm

    good article. Thanks

  76. pidudiduu on August 15th, 2009 at 8:12 pm

    Thanks for the useful information!

  77. Jordan on August 17th, 2009 at 9:18 am

    Cake, Zend and Symphony are overly monolithic, imo. The MVC part of Zend seems ‘tact on.’ The database API is probably the worst I have come across. Symphony and Cake seem to be similar with similar goals.

    CI is fine. There development cycles are years so the framework basically doesn’t improve.

    Kohana is top shelf by far.

  78. adwin on August 21st, 2009 at 10:14 am

    don’t forget to add yii framework. it is new but it looks promising in the future.

  79. Horia Dragomir on August 23rd, 2009 at 5:00 am

    I definitely love Kohana, but after reading most of the comments here, I think I’ll try out Zend.

    And Drupal is utterly harmful to large-scale apps, just so you know.

  80. Tom on August 27th, 2009 at 9:45 pm

    Good note about not all php frameworks are mvc. I was going to say the same thing… More importantly, I think there’s MANY “enterprise” type sites/apps using other frameworks than symfony. Definitely need to be careful about associating one framework with terms like “enterprise” or professional. For example CakePHP powers the Mozilla Add-ons site… It also powers many other sites run for big corporations. Zend also must (I’m not familiar with Zend community) since it’s been around so long. I’d imagine CodeIgniter is starting to run more larger things…But again I’m not in that community to know.

    The framework these days is almost personal preference. There are a few that are really awkward to use (Symfony, sorry, but it is) and while they are fast…there’s others that are faster. HOWEVER, if you’re used to the awkwardness…you can do just fine.

    The #1 thing I think one should look for is community and direction. Some of these frameworks are actually becoming stale. They aren’t going anywhere. They don’t have clear goals or good support.

    Personally, this is why I’d go with CakePHP (or CodeIgniter). Especially CakePHP, there’s so much development going on for it and it really has a good clear focus on the future.

    It’s funny because it’s all relatively comparable to which Linux distribution one uses…

  81. agavista on August 28th, 2009 at 4:42 am

    This list misses out the (most probably!) best PHP framework out there: Agavi. It’s fast, stable, extensible and gives you complete freedom of choice other than trying to decide things you should really better decide for yourself (and depending on your requirements, that is). Use whatever ORM or template engine you want. Do ‘real’ MVC (not those action->viewtemplate thingys most of the other frameworks have). And the best: It’s not a pure web-only framework, but supports fully-fledged console or XML-RPC or SOAP or $whatever applications you want to write. Try it and believe me, that Agavi will please every professional developer out there (instead of writing the same old spaghetti code in a somewhat MVCish wannabe PHP framework)!

  82. Said Bakr on September 5th, 2009 at 11:44 am

    I’d like to add another reason or advantage to a framework, Its options to be integrated with code editor such as Eclipse to get auto code completion.

  83. DemoGeek on September 5th, 2009 at 3:23 pm

    How about the Akelos framework? It looks to me that is the closest ever framework to Rails. Any takers?

  84. christian reyes on September 23rd, 2009 at 9:34 pm

    i’m using kohanaPHP as well. tried code igniter too – i’d say both of them are almost the same. frameworks really cut the production time by half.

  85. tonier on October 16th, 2009 at 9:23 am

    I have used any framework, try and see if it can make sense for my requirements. But I choose to make my own framework based on my experiences and mix any code from my previous projects and take the other framework code as the example (especially CI). It work well for me.

  86. thome on October 17th, 2009 at 2:15 am

    If you are looking for a PHP framework, maybe you could first consider looking for a more professional language. I’d recommend Python, but there are many others well designed ones.

  87. Zorancho on October 17th, 2009 at 2:41 pm

    I personally have tried Cake, Kohana and CodeIgniter… Cake is way too complicated and full of stuff, but it is good if you want to build big robust application, Kohana is good if you want to use nice Object Oriented code, but the support sucks so much.
    So i stick up with CI which helped me learn PHP as well along the way.
    Still, using and choosing a framework is more of a personal taste cause developers have different approaches to programming, so you cannot say which one is the best, it depends which one will suit you personally.

  88. Rakhi Chowdhary on October 22nd, 2009 at 12:50 am

    Of all mentioned above I have find Ruby on Rails MVC really cool and easy going. Thanks for sharing valuable information.

  89. murkein on October 22nd, 2009 at 1:50 pm

    I like symfony, this is very good

  90. saravanan on October 30th, 2009 at 8:27 am

    PHP Framework is best..But we are using Drupal CMS..This is better than best

  91. rountehewothe on November 3rd, 2009 at 3:13 am

    By the way

  92. abhijeet on November 11th, 2009 at 12:09 am

    Hi All,

    working on php things from last 6 months(earlier working on java)…………..

    started with CMS like Joomla1.5,Wordpress,Magento,expressEngine,Drupal……….

    these are good but u should know wats ur requiremnt???
    everyone has got its drawback like magento(size prblm)
    good big sites with ecommerce option that to if company has got clients in many countries…

    4 small sites wordpress,joomla is good ……

    About Frameworks….

    i remember when i started one of our clients want gallery so i went 4 option CakePhp+coppermine after it was running to slow as it retrives data from db everytime…

    i developed text based template system for that

    template hamppers the performance that is what CodeIgniter claims trying to learn and i like it

    but heard about KOHANA these days …..

    Ideal features shud be–
    -Fast
    -unwanted part/libaries shud be easily removed
    -able to change design in less time
    -after completing project additional modules should be integrated easily….

    libraries for basic things not to complex

  93. Thallis on November 24th, 2009 at 4:48 am

    Code Igniter RULES

  94. Miguel on December 2nd, 2009 at 8:00 am

    I’ve used CakePHP, sort of complicated at the beginning but once you’ve studied and visit some tutorials it’s simple. What I’ve found kind of difficult it’s the data base structure, has to be very accurate with normalization and indexes.

    • victor on January 25th, 2010 at 2:03 pm

      I consider that one of the strongest points of cakePHP—that it recommends (almost enforces) a clean database structure. Once you’ve done setting up your models in a right way, you can almost code with your eyes closed.

  95. ASIF MEHMOOD on January 8th, 2010 at 3:46 am

    Hi every body.
    PHP is easy and power full so try it for better results.

  96. victor on January 25th, 2010 at 2:02 pm

    At our company we use cakePHP. This article doesn’t consider wordpress, drupal and joomla to be frameworks—although they are! Drupal looks to be the most popular PHP framework yet.

  97. jek123 on January 26th, 2010 at 6:39 am

    Hi all!
    Help me please to solve the problem on php
    I have a php form. It is necessary to insert in her captcha. How?

  98. keogh on January 31st, 2010 at 2:54 pm

    I use CakePHP, CodeIgniter and Joomla 1.5 (very painful), I’ll try kohona I see a lot of you use it. Also I’m learning wordpress :D.

    See you :D

  99. Dominic Xavio on February 3rd, 2010 at 1:57 pm

    Those looking for a minimalist framework with a fast template engine and SQL handler inspired by Ruby’s Sinatra might want to take a peek at the PHP Fat-Free Framework. In my opinion, most of the frameworks mentioned here are bloated with more features than you’ll ever need.

  100. dimis on February 5th, 2010 at 5:53 am

    I tried codeigniter,cakephp,yii for commercial projects and I give a try to kohana and symfony (trying to learn them)
    So my first choice is Yii and the second the cakephp-both have simiralities but I liked more some Yii functions I used .
    Symfony is more complicated and you must learn more.
    Codeigniter and kohana (that is for php 5 and has some simiralities with CI) I do not like them .

  101. phiras on February 17th, 2010 at 5:23 pm

    Yii is my framework, easy, extensible, features and performance.

    • Tushar Thakur on July 20th, 2012 at 10:35 am

      Hi good article. IS their any way to make websites in php, I mean I have very low knowledge about it but I am good in asp .net, can I use same logic in php ?

      Help appreciated.

  102. grossini on March 6th, 2010 at 2:47 am

    why not have a look at qcubed (http://qcu.be).

    I tried it converting an app from msaccess to wamp.

    qcubed project lives and in my opinion is at state of the art.

    in my website a link to demo of my converted project
    Gebenefitsmall (http://www.universogalleriadarte.it/gebenefitsmall)

  103. Babar on March 25th, 2010 at 10:22 pm

    very useful and interesting read

  104. Øystein Soteland on March 26th, 2010 at 2:40 pm

    I’ve used Zend for a while. Then I found WordPress.

  105. Victor on April 20th, 2010 at 6:30 am

    Popular and highly customizable CMS like Drupal /Joomla / WordPress can be used as very handy “frameworks”.

    And I believe Cake is much older than ZendFramework.

  106. ARIJEET_RINTU on May 10th, 2010 at 10:05 am

    hai….dude…i m new in php web devloping…..i wanted to set the number of charecter in a line of a div tag…how is it possible?…….

    can anybudy give me the solution…..

    means if u using “ORKUT”…or “FACEBOOK” and u edit ur profile…suppose ur editing..the field ‘about me’…..if you give the value with out spaceing …the frame work…takes it siquently…there are no page straching……but in my web site i’ll done it.?

    • Hieu Han on May 13th, 2010 at 1:20 am

      I agree with some people here that this article was lacked little research.
      First talk about a framework, where you can build an application on. It means Joomla, Drupal are also a framework. The number of kinds of application is depended on the framework limitation.

      Second, a framework does not need to follow a MVC model. MVC is a model (similar to n-tiers model) to develop a software and you can apply it for your applications.

      Third, I saw too many questions in the internet like what is more popular between some technologies? And some people name something by their own ideas. Why you don’t put the name into Google and compare the hits number – that is a simple real-life use-case. If you do so you will see Joomla is the king, more articles, more discussions, more easy to get support, ask or get started.
      The hits of Joomla are so far away to the rest of technologies you have discussed here. You may say, no Google is a lier so you should ask why Google is so rich?

      It is poor for whom feels painful when working with Joomla. You may lack too much knowledge. If you have any new ideas about a website just go to http://extensions.joomla.org/ your ideas may be there already. Many extentions are free but some you have to pay.

      So what is the best for you? It depends on your requirements and your knowledge. Don’t make any judgement on something that you don’t know.

      • Desas on December 6th, 2010 at 5:17 am

        Thanks for your ‘smart’ comments !

  107. Jeremy on May 18th, 2010 at 1:34 pm

    I actually use my own framework built on top of Zend.
    I think of it as Zend with Symfony features.

  108. order lozol sr on May 25th, 2010 at 10:50 am
  109. Rafael on July 9th, 2010 at 2:51 am

    Thank you so much for this helpful introduction. I think i will try codeigniter or seagull.. the seem the best choice for me..

  110. noelj on July 11th, 2010 at 4:32 am

    I have been using codeigniter for a year now and I can say that it is a solid and excellent framework.

  111. mayank on August 14th, 2010 at 7:09 pm

    ya its always good to use frameworks i myself use cakephp sometimes

  112. Alojamento Web on August 21st, 2010 at 7:36 am

    I use the php framework CakePHP because is easy-to-use, includes everything that i need, documentation easy to read and understand and is easy to find tutorials or help when i need.

  113. JaMaL on August 21st, 2010 at 7:27 pm

    +1 Yii framework

  114. Ahshan on August 23rd, 2010 at 3:03 pm

    Share your life.

  115. Avkash on August 24th, 2010 at 10:36 pm

    I love PHP programming….Good information..

  116. Dwayne on September 1st, 2010 at 2:45 pm

    I use Codeigniter, the latest unreleased but stable version 2.0 which has dropped PHP4 support. Kohana is nice and all, but I find it a bit lacking in documentation in comparison to Codeigniter.

    Pretty sure that Codeigniter is better considering the company that makes it (Ellislab) builds their main flagship product Expression Engine on-top of it now which means it will be constantly updated.

  117. Aneslin on September 18th, 2010 at 12:24 am

    Useful article,
    I just start working with php frameworks. but I only know zend.
    Many thanks for the article and specially for comments. Its really useful.
    chears

  118. Aneslin on September 18th, 2010 at 12:26 am

    okay, which one is most sutable for biginer level php programmer ?
    currently im playing with CMS ( joomla and WP ). but I really need to go deeper, and like to work with my own cms. but im just a biginer. any sugestions guys?
    thanks

  119. Anonymous on November 3rd, 2010 at 12:03 am

    “PHP is the world’s most popular scripting language for many different reasons” – primary reason is that it is open source and FREE.

  120. wiper blades on November 3rd, 2010 at 3:43 pm

    I disagree that it’s ‘very difficult’

  121. helloworlder on November 18th, 2010 at 8:43 pm

    I’m currently using the Zend Framework because of its loose coupling and because its updated at an amazing pace.

    Loose coupling is important to me because I felt the tightly coupled Rails-like frameworks were always getting in my way – to be successful in using Rails clones for less than trivial applications, you need to have a very thorough understanding of the actual code behind the framework, because so much is hidden from you.

    When security and stability is very important, which is it to me, you need to know that the framework is continually patched and updated at a fast pace. Looking at all the frameworks, the only frameworks I’m confident with in this aspect are the Zend Framework and Symfony.

  122. Jun on November 23rd, 2010 at 11:22 pm

    Thank you! I was always confused about PHP before, but now that I’ve read this I have a better sense of the language.

  123. Mark on December 1st, 2010 at 11:43 pm

    Has anyone heard of the medical internet marketing agency called WebToMed? I ran across their website online and they seem to offer expert advice on Medical Web Design and ecommerce. Any advice?

  124. web app developer on December 10th, 2010 at 12:21 pm

    Problem with most of frameworks are,you have to use complete and it make website slow,this is where Zend framework has edge over other frameworks.

  125. Rajendra on December 14th, 2010 at 10:01 am

    Hi, Thanks to all guys who posted there view on PHP framework. I worked on codeigniter and would like suggest it for all types of application i.e. from beginning level enterprise level.

  126. Yasir Imran on December 27th, 2010 at 6:39 pm

    And I am using none of them, I am a basic PHP guy and trying to step into the world of frameworks. My choice would be Zend, because I heard its name from a lot of developers. I also tried to work with Code Integer but it seems so complex to me.

    • Sachin on October 20th, 2011 at 2:41 pm

      dear as i know codeignighter is the basic and easy to use framework and zend is more complex than it.
      CI has good documentation with it.

  127. brayan pher on January 4th, 2011 at 2:50 am

    thanks for all the information.

    I will try to use a framework in building websites.

  128. nara_l on January 14th, 2011 at 10:19 pm

    Another Kohana fan!

  129. xianrenb on January 15th, 2011 at 7:36 am

    MyQuickNet is simple to learn and simple to use.
    Write JavaScript and PHP in real OO way!

    http://www.myquicknet.com/

  130. Dany on January 17th, 2011 at 2:49 pm

    thought you guys moderate the site. i still see spam.

  131. Mr-H on January 24th, 2011 at 5:20 pm

    hi actually i use codeigniter cause its fast and has a powerfull library and helpers
    by the way i will try Konoha

  132. web design on January 27th, 2011 at 3:49 pm

    I’ve been using zf for a while now and it’s really loose and flexible. Though i started with CakeWalk and i still use it when working on blogs, but when working on a more complex project i prefer zend.

  133. share your talent on January 31st, 2011 at 2:52 am

    I have been hunting hunting close to for this sort of details. Will you post some more in future?

  134. Chris Amling on February 21st, 2011 at 10:04 pm

    I like the idea of using a Framework be it PHP, Ruby or JavaScript. But I think it is important to understand the underlying technologies of that Framework. I know a few beginner developers who only know how to use jQuery but never bothered to learn JavaScript. Once you have an understanding of the basics I think then Frameworks can be very helpful in developing applications. FYI I use CakePHP for my PHP Framework.

  135. suraj deshmukh on February 28th, 2011 at 10:00 am

    Thanks for explaining the complete information regarding PHP framework, and also mistakes using it, this info was useful to me.

  136. Shine R on March 15th, 2011 at 2:45 pm

    Frameworks are always good if we invest some time to learn it. Once got the grip it’ll make the life easy for developer. Personally I prefer CI for small projects and for larger ones I’ll go with ZF.

  137. Ilyas Kazi on March 16th, 2011 at 7:19 am

    Most of the votes here has gone to Kohana.. I just started recently with Kohana framework… and I feel.. I have chosen the best!

    Thank you all..

  138. Kiko on March 16th, 2011 at 1:04 pm

    The best? Simply: CakePHP!

  139. effetryevibre on April 6th, 2011 at 5:42 am

    I just couldn’t resist and want to thank you for this magnificent post. I even wrote a blog post about it here awesomemovies.org/drama/seven-pounds-2008/

  140. Romans on April 27th, 2011 at 4:14 pm

    Wow, awesome comments. I’m glad to suggest yet another framework to the list – Agile Toolkit.

    It focuses on simplicity for new developers saving us time from messing with HTML and CSS where it’s not necessary. It’s a full Web UI framework so it puts Object Oriented approach onto everything starting from ORM and database and ending with views and jQuery. There are nice introduction at http://agiletoolkit.org/intro/ and it’s open source. Enjoy and let me know what you think.

  141. DavidD on May 4th, 2011 at 9:01 am

    +1 Yii

    I have used Cake, CodeIgniter, and tried Symfony. CodeIgniter was my favorite until I ran accross Yii!

    I have been using Yii since 1.1.4 (now on 1.1.7) and I have never looked back. The way Yii auto-models your database and builds the relationships in code to match relational tables is fantastic and very fast. Also, when it builds your models it builds quite capable views that already work if you choose for it to do so. This is a true time saver. Fully functioning web pages that have full CRUD (create, read, update, delte) functionality at the click of a button is amazingly fast.

    Add to that ajax and jquery built in and easy to use.

    The last key item for me was the fact that it supports ACL based authentication as well as RBAC. Those of you that know what Role Based Authentication Control is should be excited about how simple Yii makes it for you.

    If you need to pump out code fast there is no equal as far as I have seen. Also, since it using lazy loading, Yii produces pages way faster than most frameworks.

    Just thought that info should be mentioned… cheers

    • Anish on February 3rd, 2012 at 7:37 am

      CI, is still my fav. Haven’t tried Yii yet.
      Should I try it?
      How was your experience.?

  142. Norant on May 11th, 2011 at 7:16 pm

    _ i’m use a framework created for me called saf

  143. IcemanX on July 21st, 2011 at 9:05 am

    Try crVCL http://cr-solutions.net/

    and you get Rapid Application Development for PHP with full MVC support!

  144. Tobias Sjösten on July 25th, 2011 at 2:04 am

    I think an often overlooked aspect is the framework’s community. In my opinion this is critical when picking one for long term investment. To help give an overview I wrote up a comparison between the communities of the top PHP frameworks.

    http://vvv.tobiassjosten.net/php/communities-comparison-for-php-frameworks

    Do you consider the community when choosing a framework?

  145. maryam on September 24th, 2011 at 12:57 am

    I want to make a photo-blog website and its android application in my final year project. which php framework should i use for this website?

  146. Charles on October 20th, 2011 at 12:21 am

    thank very much for the knowledge of frame work which has really helped me, cos i was finding it difficult to code in php. I think i will stick to codeigniter for a start.

  147. Michael Buble on October 27th, 2011 at 8:28 pm

    In terms of performance, I guess DooPhp would excel the rest. They have done some benchmark tests to prove it. Anyone has used DooPhp? any thoughts?

    Using framework is good, but depending on your requirements, I guess building your own framework by combining all the good aspects of other frameworks would be the best choice.

  148. Shadab on November 7th, 2011 at 10:50 am

    Thanks for the great info I have learnt alot from this article.

  149. Eugene M. Murray on February 10th, 2012 at 2:00 am

    Which Drupal framework is the most popular.
    Microsoft WebMatrix offers a few – so that is the difference or most popular?
    I have a change to work with Drual but don’t know the best commercial version?

    • Eugene M. Murray on February 10th, 2012 at 2:05 am

      Sorry for the typo “change” s/b “chance”.
      PS: I have been using PHP for over 10+ years and currently have system w/o frameworks using PHP version 5.3.+.
      So when I say commercial PHP I mean writing at a professional level for a commercial grade development…

  150. Uzzal on April 20th, 2012 at 3:36 pm

    So many replies .. Confusing !!! Where the hell is the author ? By The Way, I concluded YII to be the best..But try learning CakePHP and CodeIgniter as well..

  151. edong on April 25th, 2012 at 1:00 pm

    im using CI right now. for beginner like me in PHP .. i found CI is the best first step to learn php framework.

  152. Farbod Farhour on June 20th, 2012 at 10:46 pm

    +1 Yii.
    Yii is very comparative frameworks to other.
    It has many feetures.

  153. Eric Wargo on July 13th, 2012 at 8:03 pm

    Well written article. Apple.com uses Code Ignitor. PHP Frameworks are for web applications mainly. If you are looking for something with similar features but is mainly for front-end site building then try MODX which is really a CMS but very powerful in what it can run.

  154. Alex Dev on November 8th, 2012 at 4:54 pm

    I`ve tried Cake and CodeIgniter, they are not bad. But personally I vote for Yii. Wondering why haven`t you mentioned about it in your post? To my mind it`s the clearest and the easiest one, great for beginners. Some reasons:
    1. Easy-to-understand documentation http://www.yiiframework.com/doc/guide/
    2. Several great extensions like bootstrap http://www.yiiframework.com/extension/bootstrap/,
    backvendor http://www.yiiframework.com/extension/backvendor/ and http://www.yiiframework.com/extension/coco/
    3. High community and lots of examples

  155. webpolis on December 4th, 2012 at 4:24 pm

    I think Zend is not the best framework. I really hate when a project comes to my desk and it’s built with Zend, the way it handles relationships and models is sad, same as the Kohana Framework (i’d burn it if i could).
    The only ones frameworks that really worth, are Yii and CakePHP

  156. Amit on December 29th, 2012 at 8:54 am

    WORDPRESS is the best……..

  157. Steven P on April 14th, 2013 at 1:05 pm

    cakePHP sucks. Why? Their own blog tutorial – ambiguously written – results invariably in error messages:

    Error: PostsController could not be found.
    Error: Create the class PostsController below in file: app\controllers\PostsController.php

    If those idiots cannot write out a simple “hello world” tutorial … one wonders what else they punted on.

    PHP is an old, old friend. codeigniter is not, but at least it works out of the box and is documented by humans rather than imbeciles.

  158. BlueSky on June 16th, 2013 at 7:20 pm

    We are planning to develop auction like portal, can anyone suggest PHP framework, which can easily be tweaked to help us get going.

  159. Lucky phillips on October 3rd, 2013 at 2:43 pm

    Hey Php guys. I believe android and ios at this point and for next few years is good choice. Even couple of good apps in market can earn you a good handsome amount of money.
    If anyone wants to start with Android then Here is a nice tutorial for beginners i took. It’s for absolute beginners. It’s not free but still i found it totally worth as i would have wasted much more time in starting up without this tutorial. It gave me a nice start. Worth sharing.
    http://www.udemy.com/beginning-with-android-development-first-app-and-beyond

  160. ASIF MEHMOOD on January 8th, 2010 at 3:44 am

    Zend is best if you try.

  161. Aneslin on September 28th, 2010 at 10:28 am

    thanks mate