CakePHP: The Rapid Development Framework for PHP - Official Repository
The CakePHP core team is happy to announce the immediate availability of CakePHP 4.5.0. This is the first stable release of 4.5.0. 4.5.0 provides a number improvements to CakePHP. 4.5.0 introduces a large number of deprecation warnings aimed at assisting with future upgrades to CakePHP 5.0.
You can use composer to upgrade to CakePHP 4.5.0:
php composer.phar require --update-with-dependencies "cakephp/cakephp:4.5.*"
4.5 introduces a few deprecations. All of these features will continue for the duration of 4.x but will be removed in 5.0. See the migration guide.
The migration guide has a complete list of what's new in 4.5.0. We recommend you give that page a read when upgrading. A few highlights from 4.5.0 are:
bin/cake cache clear_group <name>
was added. This command gives a CLI interface to clearing a specific cache group.ComponentRegistry
is now automatically added to your application's DI container.Controller::addViewClasses()
was added. This method lets you build a controller's view classes programatically.read
and write
connection roles. Connection roles let you scale an application up by using read-replicas. When defining connections, roles can be configured with read
and write
keys in the connection config that override the shared config.read
or write
connection role to be used.ModelAwareTrait::fetchModel()
was added. This method works similar to loadModel()
but does not set the model as an attribute.EntityTrait::$_hasAllowsNull
was added. This property allows you to incrementally opt-in to a breaking change present in 5.x for EntityTrait::has()
.View::addHelper()
was added. This method compliments addBehavior()
and addComponent()
.Thank you to all the contributors that helped make 4.5 happen:
As always, a huge thanks to all the community members that helped make this release happen by reporting issues and sending pull requests. 4.5.0 is a large release and would not have been possible without the community support and feedback.
With both 5.0 and 4.5 shipped the core team's focus will be primarily on CakePHP 5.x. Future 4.x releases will be primarily community driven. Feature and bugfix releases for 4.x will continue until September 2025. Security fixes will continue for 4.x until September 2026.
The roadmap for 5.x is still under development. We're interested in making the upgrade from 4.5.0 to 5.0 a smooth one, and would appreciate any feedback you have on upgrade difficulties. Please open an issue and get the discussion started.
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.0.1. This is a maintenance release for the 5.0 branch that fixes several community reported issues and a minor security related fix..
You can expect the following changes in 5.0.1. See the changelog for every commit.
FormProtection
component to have its session id source customized in subclasses.Cake\Mailer\Message
. Thank you to Waldemar Bartikowski who reported the issue via our security mailing list.PaginatedResultSet
is now JsonSerializable
.include_once
when Application
loads plugin configuration.View::getConfig()
is now public.ORM\Marshaller::one()
now uses newEmptyEntity()
improving compatibility with subclass implementations.getMockForModel()
is deprecated because of changes in PHPUnit.Cake\Http\Client
cookie parsing with invalid values that lack both a value and =
delimiter.Collection\SortIterator
is now compatible with Chronos
types.dd()
method.defaults
being mutated in DashedRoute
and InflectedRoute
after match()
is called.Thank you to all the contributors that helped make this release happen:
As always, we would like to thank all the contributors that opened issues, created pull requests or updated the documentation.
The CakePHP core team is happy to announce the immediate availability of CakePHP 4.4.18. This is a maintenance release for the 4.4 branch that fixes several community reported issues and a minor security related fix.
You can expect the following changes in 4.4.18. See the changelog for every commit.
RedirectException
now forwards headers to redirect responses.ConsoleOutput
to accept stream resources. This solves 'too many streams open' problems when application code creates many instances of ConsoleIo
.Cake\Mailer\Message
. Thank you to Waldemar Bartikowski who reported the issue via our security mailing list.Cake\Http\Client
cookie parsing with invalid values that lack both a value and =
delimiter.Thank you to all the contributors that helped make this release happen:
As always, we would like to thank all the contributors that opened issues, created pull requests or updated the documentation.
The CakePHP team is thrilled to announce the immediate availability of 5.0.0. This is release begins a new chapter for CakePHP as 5.0 is now stable. 5.0.0 has been in development for the past two years, adding many new features and performance improvements. It also contains breaking changes as features and behavior deprecated in 4.x have been removed.
Time
type and greatly improved Date
and DateTime
support via chronos 3.x.To find out more about what is new and changed in 5.0 refer to the migration guide.
5.0 contains a number of breaking changes. If you have an existing application, we'll be releasing 4.5.0 in the upcoming weeks. This release will contain many of the features present in 5.0, and will also contain deprecations for many ofthe breaking changes in 5.0 that do not already have deprecations. Once 4.5.0 is released we recommend that you upgrade to that release first. Then, once you have addressed all of the deprecations in 4.5.0 you will have a much easier time upgrading to 5.0.0
To help with your upgrade from 4.x to 5.x the core team has prepared both a migration guide covering the deprecated, removed and new features.
Additionally, the core team has also prepared an upgrade guide which provides a step-by-step guide and CLI tooling to help you upgrade your application.
CakePHP 5.0 is the result of two years of work and contributions from the following community members:
Thank you for all you've done to make CakePHP 5.0.0 a reality.
The CakePHP core team is happy to announce the immediate availability of CakePHP 4.4.17. This is a maintenance release for the 4.4 branch that fixes several community reported issues.
You can expect the following changes in 4.4.17. See the changelog for every commit.
Thank you to all the contributors that helped make this release happen:
As always, we would like to thank all the contributors that opened issues, created pull requests or updated the documentation.
The CakePHP core team is happy to announce the immediate availability of CakePHP 4.4.16. This is a maintenance release for the 4.4 branch that fixes several community reported issues.
You can expect the following changes in 4.4.16. See the changelog for every commit.
numbers()
when using the modulus
option.ProgressHelper
now initializes options with default values solving errors when output()
is called before init()
is.Thank you to all the contributors that helped make this release happen:
As always, we would like to thank all the contributors that opened issues, created pull requests or updated the documentation.
The CakePHP core team is happy to announce the first release candidate for CakePHP 4.5.0. The 4.5 release includes many new deprecations and is a recommended upgrade point if you plan on upgrading to 5.0 in the future. There are also new features in 4.5.0. The highlights of those include:
Cache::write()
will throw an exception on error now.--
to indicate that all following parameters are positional arguments.ConnectionManager
now supports read and write connection roles. Roles can augment the connection configuration using nested configuration.HttpsEnforcerMiddleware
now supports the trustedProxies
option which lets you define upstream proxies that your application should trust to proxy HTTPs traffic.The migration guide has a complete list of what's new in 4.5.0. We recommend you give that page a read when upgrading as it notes the deprecations present in 4.5.0.
You can help deliver 4.5.0 by contributing in one of many ways:
Thank you to all the contributors that have helped since with the RC1 release:
As always, a huge thanks to all the community members that helped make this release happen by reporting issues and sending pull requests.
The CakePHP core team is happy to announce the second release candidate for CakePHP 5.0.0. Since the RC1 release the core team has continued to improve deprecations, add a few small features, and improved naming. Some of the highlights of this work include:
hasNextPage
more consistent.Command.beforeExecute
and Command.afterExecute
events to Command
.setResult
instead of return
. We recommend this usage in the future.cake.database.queries
and cake.mailer
logging scopes. The queriesLog
and email
scopes are deprecated now.The migration guide has a complete list of what's new in 5.0.0. We recommend you give that page a read when upgrading as it notes the various breaking changes present in 5.0.
You can help deliver 5.0 by contributing in one of many ways:
Thank you to all the contributors that have helped since the RC1 release:
As always, a huge thanks to all the community members that helped make this release happen by reporting issues and sending pull requests.
The CakePHP core team is happy to announce the immediate availability of CakePHP 4.4.15. This is a maintenance release for the 4.4 branch that fixes several community reported issues including a low risk security fix.
You can expect the following changes in 4.4.15. See the changelog for every commit.
unserialize
in debug output of SecurityComponent
failure messages. Thanks to Andreas Kellas for reporting this issue via our security disclosure policy.Thank you to all the contributors that helped make this release happen:
As always, we would like to thank all the contributors that opened issues, created pull requests or updated the documentation.
The CakePHP core team is happy to announce the first release candidate for CakePHP 5.0.0. Since the beta2 release the core team has continued to refine, simplify, and prepare 5.0 for the upcoming future. Some of the highlights of this work include:
Time
extensions with translation integrations.Time
support to the ORM. Going forward time
type columns will be mapped to this type. Additionally, date
type columns will be mapped to immutable Date
objects.Finally, the scope for 5.x isn't locked down so if you'd like to see a feature added please open an issue.
The migration guide has a complete list of what's new in 5.0.0. We recommend you give that page a read when upgrading as it notes the various breaking changes present in 5.0.
You can help deliver 5.0 by contributing in one of many ways:
Thank you to all the contributors that have helped since the beta2 release:
As always, a huge thanks to all the community members that helped make this release happen by reporting issues and sending pull requests.