CakePHP 3.0.0 is Here!
The CakePHP core team is thrilled to announce the release of CakePHP 3.0.0. This is the first API stable release for the 3.0 branch. This release is a backwards incompatible release with previous CakePHP versions. The new minimum requirements for CakePHP are:
- PHP 5.4.16 or greater.
- mbstring extension
- intl extension
Some of the key features in CakePHP 3.0 are outlined in the following sections.
Key Features
A New ORM
The largest and most exciting change in CakePHP 3.0, is the new ORM. While the Model layer in CakePHP has served the community very well for the past 8 years, we felt there was a big opportunity to learn from the tools other frameworks provide and create a flexible and powerful ORM for CakePHP. We are very proud of the results. The ORM migration guide gives an overview of the new ORM, and how it differs from the old one.
Some of the key features of the new ORM are:
- Use of the Datamapper Pattern.
- Support for different eager loading strategies.
- Improved query building with a fluent interface.
- Embedded support for data post-processing with a full featured collections library.
- Support for composite primary keys.
- Ability to both return plain arrays or objects as results.
- Custom data types logic for casting complex types from, and to, the database.
Faster and More Flexible Routing
Reverse routing has almost consistent time complexity now. In previous releases reverse routing performance decreased as the number of routes increased. Thanks to named routes and some additional optimizations, routing performance will not degrade even with large numbers of routes.
With the usage of routing scopes, routes can also be parsed and dispatched even faster than in previous releases of CakePHP. You can learn more about the new Router in the Routing section of the manual.
Improved Migrations
A more powerful migrations plugin based on phinx allows you to easily create and deploy migrations for your application.
Better Internationalization
The I18n subsystem was completely rewritten to take advantage of the intl PHP extension. This allows CakePHP to offer:
Improved Debugging Toolbar
DebugKit has been rebuilt for 3.0 and offers more features than ever before with less overhead to your application. DebugKit is installed by default in the new application skeleton.
Composer Usage
CakePHP, the Application skeleton and several components (bake, acl, migrations and DebugKit are now installed with composer. We recommend using composer for installing CakePHP as it greatly simplifies maintaining the dependencies for your application.
Standalone libraries
A number of CakePHP libraries have been split out into standalone libraries. Each of these libraries can be used outside of CakePHP applications, or in a 2.x application where you want to start leveraging some of the new features in 3.0.
View Cells
View cells are small classes that offer controller-like functionality but can be used directly in the view to pull data from any source and render certain template. Read more about View Cells.
Getting started
On top of the framework changes, we’ve created a new repository for the application skeleton[3]. You can install this and the development preview of CakePHP using composer[4]. After downloading and installing composer you can use:
$php composer.phar create-project cakephp/app
This will generate a new application, so you can start experimenting with CakePHP 3.0.
Learn More With the Documentation
Once you have an application started, you can read the quickstart guide or migration guide to learn more about all the changes and new abilities in CakePHP 3.0.
Community Plugins
Even though CakePHP 3.0 is young, it already counts on a big community behind it. A big list of plugins has been created for this new version and some of the favorite plugins that are used for version 2 have already been upgraded. You can check the list of CakePHP 3 community plugins. To get an overview of what is available and what still needs to be upgraded to the new version.
This new release of CakePHP has been a few years in the making and we’re very thankful for all the help we’ve received. From documentation edits, to pull requests and bug reports, we’ve been impressed with the level of community involvement starting from before the first development preview.
Download a packaged release or get started with the quickstart guide.