Releases: cakephp/cakephp
CakePHP 5.2.4 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.2.4. This is a maintenance release for the 5.2 branch that fixes several community reported issues and regressions.
Bugfixes
You can expect the following changes in 5.2.4. See the changelog
for every commit.
- Improves foreign key reflection with sqlite to resolve gaps between functionality offered in migrations.
- Fixed a regression in
EntityTrait::isModified()
. - Fixed PHP warnings being emit when rendering a development error page for
MissingActionException
. - Fixed regressions that broke documented custom message loaders for
I18n
. - CLI options are now coerced to string to avoid type errors with
ConsoleInputOption:
constructor. - Fixed regression with
App.base
configuration not being used. - Added the
clearUsesFlushDb
option toRedisEngine
. When enabled this allowsclear()
andclearGroup()
to useFLUSHDB
. This option should be used with caution as it will drop all keys in the current redis database. - Primary key reflection in SQLServer now retains the primary key name to support primary key operations in migrations.
- Improved support for mockery, and increased usage of mockery in cakephp's tests.
- Replaced
PHPUnitConsecutiveTrait::withConsecutive()
with mockery's methods.
Contributors to 5.2.4
Thank you to all the contributors that submitted a pull request:
- ADmad
- Jamison Bryant
- Mark Scherer
- Mark Story
- Mirko Pagliai
As always, we would like to also thank all the contributors that opened issues, or updated the documentation.
CakePHP 4.6.1 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 4.6.1. This is a maintenance release for the 4.6 branch that fixes several community reported issues and regressions.
Bugfixes
You can expect the following changes in 4.6.1. See the changelog for every commit.
Cake\Cache\Engine\NullEngine::getMultiple()
now returns all keys like other cache engines.MemcachedEngine::getMultiple()
now handles null values correctly.- Fixed deprecated method usage in
ReconnectStrategy
. - Fixed method and finder maps not being populated when
BehaviorRegistry::set()
is called.
Contributors to 4.6.1
Thank you to all the contributors that submitted a pull request:
- ADmad
- Alejandro Ibarra
- Joris Vaesen
- Mark Story
- othercorey
- Val Bancer
As always, we would like to also thank all the contributors that opened issues, or updated the documentation.
CakePHP 5.2.3 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.2.3. This is a maintenance release for the 5.2 branch that fixes several community reported issues and regressions.
Bugfixes
You can expect the following changes in 5.2.3. See the changelog for every commit.
- Fixed template annotations for behaviors in
ORM\Table
. - Improved API doc blocks for helpers.
- Fixed reflection of primary keys with Sqlite.
- Added
TestSuite.fixtureStrategy
to enable choosing a default fixture strategy for an application or plugin test suite. - Improved
TestCase::deprecated()
to allow PHP version conditions, and fixed deprecated method usage within CakePHP's test suite.
Contributors to 5.2.3
Thank you to all the contributors that submitted a pull request:
- ADmad
- Mark Scherer
- Mark Story
As always, we would like to also thank all the contributors that opened issues, or updated the documentation.
CakePHP 5.2.2 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.2.2. This is a maintenance release for the 5.2 branch that fixes several community reported issues and regressions.
Bugfixes
You can expect the following changes in 5.2.2. See the changelog for every commit.
- Table finder and method maps are cleaned up when behaviors are unloaded.
- Http/Client now uses
GET
instead ofget
when makingGET
requests. - Reverted a change to
NumberHelper
intended for 5.3. - Improved MySQL column generation features.
- Improved type annotations for
Table::getBehavior()
- Logged and displayed errors now always include location information.
- Added implementation of
columnDefinitionSql
to postgres and sqlserver. - Deprecated defining overlapping short options in command line tools.
Note: For the getBehavior() type annotations @extends
to not cause any issues, make sure that each intermediate Table class between core and final app/plugin Table classes have the same annotation added:
@template TBehaviors of array<string, \Cake\ORM\Behavior> = array{}
This prevents any errors such as
ERROR: MissingTemplateParam ... SomeTable has missing template params when extending Cake\ORM\Table
Contributors to 5.2.2
Thank you to all the contributors that submitted a pull request:
- Adam Halfar
- ADmad
- Fiona Wille
- Marcelo Rocha
- Mark Scherer
- Mark Story
As always, we would like to also thank all the contributors that opened issues, or updated the documentation.
CakePHP 5.2.1 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.2.1. This is a maintenance release for the 5.2 branch that fixes several community reported issues and regressions.
Bugfixes
You can expect the following changes in 5.2.1. See the changelog for every commit.
- Column generation in Sqlite preserves commments now.
BehaviorRegistry::set()
now updates method and finder mappings.- Fixed regression in
Response::mapType()
with array parameters. - Update documentation for
Table::buildRules()
. - Several methods on
NumberHelper
had types widened to allownull
. This makesNumberHelper
more ergonomic to use and increases compatibility with code from 4.x. - Fixed regression where custom validation methods would have not get
$context
passed. - Fixed regression in update queries with expressions in the
SET
clause.
Contributors to 5.2.1
Thank you to all the contributors that submitted a pull request:
- ADmad
- fabian-mcfly
- Mark Scherer
- Mark Story
- mscherer
As always, we would like to also thank all the contributors that opened issues, or updated the documentation.
CakePHP 5.2.0 released
The CakePHP core team is happy to announce the release of CakePHP 5.2.0. The 5.2 release includes several behavior changes to increase correctness and new features. The highlights of those include:
- The
cake counter_cache
command was added. This command can be used to regenerate counters for models that useCounterCacheBehavior
. ConsoleIntegrationTestTrait::debugOutput()
makes it easier to debug integration tests for console commands.- Console arguments and options support a
separator
option making it possible to define parameters like--names=foo,bar
- The
nativeuuid
type was added. This type enablesuuid
columns to be used in Mysql connections with MariaDB. In all other drivers,nativeuuid
is an alias foruuid
. - A new set of database reflection methods are added. These new methods will be used to simplify migrations in future releases.
FormHelper::deleteLink()
has been added as convenience wrapper for delete links in templates usingDELETE
method.HtmlHelper::importmap()
was added. This method allows you to define import maps for your JavaScript files.- Custom exceptions can have specific error handling logic defined in
ErrorController
. TestFixture::$strictFields
was added. Enabling this property will make fixtures raise an error if a fixture's record list contains fields that do not exist in the schema.
What's new in 5.2.0
The migration guide has a complete list of what's new in 5.2.0. We recommend you give that page a read when upgrading as it notes the behavior changes present in 5.2.0.
Contributors to 5.2.0
Thank you to all the contributors that have contributed to this release:
- Adam Halfar
- ADmad
- Erwane Breton
- John Caprez
- Kevin Pfeifer
- kolorafa
- Mark Scherer
- Mark Story
- Masatoshi Ogiwara
- Miguel Enes
- mirko-pagliai
- Nicos Panayides
- othercorey
- RobRikken
As always, a huge thanks to all the community members that helped make this release happen by reporting issues and sending pull requests.
CakePHP 4.6.0 released
The CakePHP core team is pleased to announce the release of CakePHP 4.6.0. The 4.6 release includes features backported from 5.1 and the upcoming 5.2 releases. 4.6.0 is a smaller release, as the core team's focus is on 5.x now. 4.x feature releases are now driven by primarily by community involvement. what is new in 4.6 include:
What's new in 4.6.0?
The migration guide has a complete list of what's new in 4.6.0. We recommend you give that page a read when upgrading. A summary of what's new is:
RedisEngine
now supports atls
option for connecting to redis via a TLS connection.Number::formatter()
andcurrency()
now support aroundingMode
option to control how rounding is handled.- Optional
Command
arguments can now have adefault
value.
Upgrading to 4.6.0
You can use composer to upgrade to CakePHP 4.6.0:
php composer.phar require --update-with-dependencies "cakephp/cakephp:4.6.*"
Contributors to 4.6.0
Thank you to all the contributors that helped make 4.5 happen:
- Adam Halfar
- ADmad
- Chris Nizzardini
- Fernando Herrero
- Frank de Graaf (Phally)
- Kevin Pfeifer
- Mark Scherer
- Mark Story
- othercorey
As always, a huge thanks to all the community members that helped make this release happen by reporting issues and sending pull requests. 4.6.0 would not have been possible without the community contributions.
What's Next
Feature and bugfix releases for 4.x will continue until September 2025. Security fixes will continue for 4.x until September 2026.
The core team's focus is on 5.2 and 6.0. The 5.2.0 release is coming up quickly. Early work has started on the 6.x
branch. This branch will become 6.0.0. If you're interested in what has been completed so far, or want to know what is being discussed currently, see the 6.0 milestone in GitHub.
CakePHP 4.5.10 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 4.5.10. This is a maintenance release for the 4.5 branch that fixes a few community reported issues. This will be the final routine release for 4.5, as 4.6.0 will be released later this week.
Bugfixes
You can expect the following changes in 4.5.10. See the changelog for every commit.
- Fix Route::parseRequest() not being able to emit query parameters
Contributors to 4.5.10
Thank you to all the contributors that helped make this release happen:
- Mark Story
As always, we would like to thank all the contributors that opened issues, created pull requests or updated the documentation.
CakePHP 5.2.0-RC1 released
The CakePHP core team is happy to announce the first release candidate for CakePHP 5.2.0. The 5.2 release includes several behavior changes to increase correctness and new features. The highlights of those include:
- The
cake counter_cache
command was added. This command can be used to regenerate counters for models that useCounterCacheBehavior
. ConsoleIntegrationTestTrait::debugOutput()
makes it easier to debug integration tests for console commands.- Console arguments and options support a
separator
option making it possible to define parameters like--names=foo,bar
- The
nativeuuid
type was added. This type enablesuuid
columns to be used in MySQL connections with MariaDB. In all other drivers,nativeuuid
is an alias foruuid
. - A new set of database reflection methods are added. These new methods will be used to simplify migrations in future releases.
FormHelper::deleteLink()
has been added as convenience wrapper for delete links in templates usingDELETE
method.HtmlHelper::importmap()
was added. This method allows you to define import maps for your JavaScript files.- Custom exceptions can have specific error handling logic defined in
ErrorController
.
What's new in 5.2.0
The migration guide has a complete list of what's new in 5.2.0. We recommend you give that page a read when upgrading as it notes the behavior changes present in 5.2.0.
How you Can Help
You can help deliver 5.2.0 by contributing in one of many ways:
- Check the documentationfor mistakes, outdated, unclear or broken examples. We've been trying to update the documentation as we go, but there are likely examples or sections we've missed.
- Try it out! Give CakePHP 5.2.0 a test drive. Let us know how upgrading went and if there were any rough spots.
- File issues for regressions in existing features, or suggest new features. Even if those features don't make it into 5.2.0, we're early in the process of planning 5.2 and value community feedback.
Contributors to 5.2.0-RC1
Thank you to all the contributors that have contributed to this release:
- Adam Halfar
- ADmad
- Erwane Breton
- Kevin Pfeifer
- kolorafa
- Mark Scherer
- Mark Story
- mirko-pagliai
- Nicos Panayides
- othercorey
- RobRikken
As always, a huge thanks to all the community members that helped make this release happen by reporting issues and sending pull requests.
CakePHP 5.1.6 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.1.6. This is a maintenance release for the 5.1 branch that fixes several community reported issues and regressions. If you are having problems with the framework breaking your application when you upgrade from 5.0.11 to 5.1, please open an issue.
Bugfixes
You can expect the following changes in 5.1.6. See the changelog for every commit.
- Updated
Session::renew()
to avoid samesite warnings. - Errors caused by requests to URLs like
index.php?<>?
now have error pages rendered instead of empty 500 responses. - Improved behavior of
requireFieldPresence
in entities. MissingActionException
raised in plugins now correctly name the controller + action in the error message.- Added IPv6 support to datasource DSN parsing.
Http\Client
no longer overwrites an explicit content type withapplication/x-form-urlencoded
when an empty request body is provided.FormHelper::postLink()
now usesHtmlElement.requestSubmit()
instead of.submit()
. This allowssubmit
event handlers to intercept requests frompostLink()
buttons.
Contributors to 5.1.6
Thank you to all the contributors that submitted a pull request:
- ADmad
- Alberto G. Rodriguez
- Kevin Pfeifer
- Mark Scherer
- Mark Story
- Mirko Pagliai
- othercorey
- Markus Ramšak
As always, we would like to also thank all the contributors that opened issues, or updated the documentation.