When comparing Play vs CakePHP, the Slant community recommends Play for most people. In the question“What are the best web frameworks to create a web REST API?” Play is ranked 31st while CakePHP is ranked 32nd. The most important reason people chose Play is:
Play has quite a large community which provides numerous tutorials and videos related to developing with Play. The Play official documentation covers many things, such as the framework itself but also specific stuff such as Akka, SBT and Netty. There are also many big companies that base their main sites around Play, one of them is LinkedIn which provides third-party documentation on a regular basis.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Good documentation and a great community
Play has quite a large community which provides numerous tutorials and videos related to developing with Play.
The Play official documentation covers many things, such as the framework itself but also specific stuff such as Akka, SBT and Netty.
There are also many big companies that base their main sites around Play, one of them is LinkedIn which provides third-party documentation on a regular basis.
Pro Readable code
Play framework's convention over configuration methodology makes most Play projects have a very similar structure. This means that the code written for the framework is very readable. This enables a developer to switch between applications without having to relearn the ecosystem for every project. The built-in templating system also helps with code and makes it possible to have a very low count of lines of code.
Pro Simple for beginners
Play is very simple to get started. The documentation is very helpful for beginners and advanced users alike and the official website has a great "Getting Started" tutorial to begin developing with Play.
Pro Play feautures Non-blocking I/O by default
Play Framework is asynchronous from the bottom up: asynchronous is default in Play API.
Pro Play is an extensive ecosystem
Play uses Akka for concurrency, Scala for a templating engine, Netty as a client-server framework and SBT (Simple Build Tool) for building. And they all come out of the box.
Play also comes with the option to scaffold your applications. Play is an all-embracing ecosystem designed to increase developer productivity and shorten development times.
Pro Built-in ORM that's easy to use
Cake has a built-in ORM which is pretty easy to use and learn. Building queries can also be done very easily and fetching entire columns can be done in one or two lines of code.
Pro Fast development
Developing in CakePHP is very fast and flexible.
CakePHP is about fast and reliable development, it achieves this by following the convention over configuration principle as it's heavily inspired by Rails (which follows the same programming paradigm).
Convention over configuration is all about making it easier for the developer to start immediately writing code without worrying on what's going on "under the hood".
Pro Large library of helper classes
CakePHP has a large library of helper classes with features such as:
- Authorization
- AJAX
- Forms
- E-mails
- Internationalization
etc...
Pro Exhaustive list of resources to learn CakePHP
Cake's great community has thrown together an exhaustive and amazing list of resources to get started with CakePHP. It's open source and can be found on GitHub.
Pro Open Source
CakePHP open source and is licensed under the MIT license.
Cons
Con Awkward, non-idiomatic Java API
Con Backward incompatibility
The jump from Play 1 to Play 2.x caused a lot of confusion. While it is important to have some kind of evolution, sometimes it causes backward incompatibility which can create some problems. It makes tutorials or modules made for the old version obsolete. This can make it hard for beginners to find useful resources. The template engine which used Groovy now uses Scala.
Con Slow
Because of legacy code, old concepts and prioritizing development speed over everything else, CakePHP is bloated and slow.