Yesterday, Zend Framework 2.0 and Symfony 2.1 were released… almost at the same time. First, I want to congratulate both the Zend Framework team and the Symfony team for their huge milestones; I know that working on a new major version is no small task.
And of course, people started to ask questions about these new versions and one of the most popular was: “Why would I choose framework X over framework Y?”. As you can imagine, the answer is not that easy as each framework has its own specificities.
I like to think that most popular frameworks are modular enough, fast enough, well-documented enough; they are using well-known design patterns. So, besides the buzzwords, what is unique to CakePHP? Why would you want to use CakePHP instead of Z or S? That’s the question I’m going to answer in this post.
So, without further ado, here are my main selling points for CakePHP:
- CakePHP is a cohesive framework. We like to think that opinionated coding is a win for all developers, as it allows you to move from project to project with minimal overhead. That said, it is quite easy to replace any of the components of CakePHP, allowing you to pull many utility classes into your own app, use custom Router classes to create a micro-framework, or go at full-speed using the full-stack framework.
- CakePHP is used by many large companies (we don’t name them because we don’t like name-dropping), by many large websites (check out the cakephp.org site for more details) and some Open-Source projects are also powered by CakePHP (but we try not to rebuild the wheel!). This brings a lot of interoperability between all these solutions.
- CakePHP enjoys a huge community of users and contributors; I won’t spout out numbers because they are meaningless without knowing what exactly those users did. Check out our commits if you’d like them :). CakePHP also has an annual dedicated conference and a large number of user groups.
- CakePHP has been created in 2005 and here to stay. Besides CakeDC, many other companies rely on CakePHP for their clients and they contribute, invest money, and sponsor the future of the project.
- CakePHP ACTUALLY embraces the “don’t reinvent the wheel” philosophy - by having an opinion on everything, but being flexible enough to override where necessary - and allows you to create bindings between it and any many other Open-Source projects (like Monolog, Assetic, Doctrine, Propel, …).
- CakePHP understands that while innovating, you must also continue to support developers who are unable to do so. A goal of ours has been to bridge the gap between developers and the language, and thus our latest release still support PHP 5.2.x for those on old hosts. We’re also moving to PHP 5.4 on our next major 3.0 release, bringing all the awesome goodies from the language introduced in that version, and continuing to support our users by anticipating the move to said release.
If you think I’ve missed some important selling points, feel free to list them in the comments and in a few days, I will aggregate everything in a new page that will be hosted on cakephp.org to help users make an informed decision when choosing a framework.
And if other frameworks would like to do the same, I would happily add links to their pages on the CakePHP one, and if in turn, they do the same, that would create a ring of links that will ease the choice of a PHP framework for developers.