Releases: cakephp/cakephp
CakePHP 5.3.0-RC2 released
The CakePHP core team is happy to announce the second release candidate for CakePHP 5.3.0. Since the previous release candidate, the following changes have been made:
- Added
ExistsInNullablerule class to make it easier to create exists in rules that allow nulls. - Bugfixes and Improvements to the rate limiter middleware.
- Improved API documentation.
SortFieldtreats 'desc' as reverse of the default direction now.- Fixed
maxLimitrestriction onPaginatorHelper::limitControl(). - Fixed missing type mappings in database schema.
- Missing abstract types no longer raise exceptions. Instead a String type is returned.
- Loading plugin classes with the class name of
Pluginis now deprecated. - Added additional data to cache engine events.
- Fixed deserialization error in
TableSchema. - Added verbose mode output for the
versioncommand. - Improved error messages when a command is missing.
- Added
Http\RedirectTraitto make it easier to build redirect responses in applications and plugins. Association::__isset()now only checks for associations, to be aligned with__get().- Commands can now implement the
CommandHiddenInterfacemarker interface to hide a command from command listings.
What's new in 5.3.0
The migration guide has a complete list of what's new in 5.3.0. We recommend you give that page a read when upgrading as it notes the behavior changes present in 5.3.0.
How you Can Help
You can help deliver 5.3.0 by contributing in one of many ways:
- Check the documentation for 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.3.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.3.0, we're early in the process of planning 5.3 and value community feedback.
Contributors to 5.3.0-RC2
Thank you to all the contributors that have contributed to this release:
- ADmad
- Corey Taylor
- Jasper Smet
- Kevin Pfeifer
- Marcelo Rocha
- Mark Scherer
- Mark Story
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.2.10 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.2.10. 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.10. See the changelog for every commit.
- Fixed
Form::getError()using dot notation - Fixed testing
FormProtectorwithIntegrationTestTraitin non-debug mode - Fixed
Query::bind()not setting the query dirty - Fixed rendering 400 errors with base template from plugins
- Fixed
ConsoleIntegrationTestTrait::exec()exception on multiple calls with input - Initialized event manager earlier when running commands so all events are supported
- Cleaned up various documentation and annotations
- Fixed Chronos deprecations
- Fixed PHP 8.5 deprecations
Contributors to 5.2.10
Thank you to all the contributors that submitted a pull request:
- ADmad
- Alberto G. Rodriguez
- Corey Taylor
- Jasper Smet
- Mark Scherer
- Mark Story
- nook24
As always, we would like to also thank all the contributors that opened issues, or updated the documentation.
CakePHP 4.6.3 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 4.6.3. 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.3. See the changelog for every commit.
- Fixed PHP 8.4 and 8.5 deprecation warnings.
- Fixed queries that use subqueries that already been executed.
- Fixed Query::bind() not setting the dirty flag.
- Backported Cell action events
- Normalize URLs in
IntegrationTestTrait::assertRedirect()
Contributors to 4.6.3
Thank you to all the contributors that submitted a pull request:
- bancer
- krugerman007
- markstory
- othercorey
- skie
CakePHP 5.3.0-RC1 released
The CakePHP core team is happy to announce the first release candidate for CakePHP 5.3.0. The 5.3 release includes several behavior changes to increase correctness and new features. The highlights of those include:
- Minium PHP version requirement is now PHP 8.2.0.
- The Redis cache engine now supports Redis clusters.
cake plugin assets symlinkcommand now supports a--relativeoption to create relative path symlinks.cake servernow supports a--frankenphpoption that will start the development server with FrankenPHP.- Added
Configureattribute to support injectingConfigurevalues into constructor arguments. - Added
Query::optimizerHint()which accepts engine-specific optimizer hints. - Added additional database types for
year,inet,cidr, andmacaddr. - Added
Date::getTimestamp(). This method returns an int of the date's timestamp. Table::patchEntity(),Table::newEntity(),Marshaller::one()andMarshaller::many()now accept astrictFieldsoption that only applies validation to the fields listed in thefieldsoption.- Added
TableContainerthat you can register in your Application::services() to add dependency injection for your Tables. - Added a new fluent interface and value objects for defining sortable fields. The
sortableFieldsoption now ofPaginatornow accepts a callable that receives aSortableFieldsBuilderinstance, allowing you to map friendly sort keys to database fields with multi-column sorting and direction control. - Added
SortFieldclass for defining sort field configurations with customizable default directions and locked directions, (e.g.SortField::desc('created', locked: true)). - Added support for combined sorting keys in URLs (e.g.,
?sort=title-asc) assertRedirectBack()andassertRedirectBackToReferer()were added to improve ergonomics of asserting redirects.HtmlHelper::scriptStart()andscriptEnd()now allow simple
wrapping script tags (<script>...</script>) around inline JavaScript. This enables syntax highlighting in many editors.StringTemplate::addClassNames()was added to provide a more ergonomic way to generate class names.Cake\Http\Middleware\RateLimiterMiddlewarewas added to provide rate limiting functionality for applications.
What's new in 5.3.0
The migration guide has a complete list of what's new in 5.3.0. We recommend you give that page a read when upgrading as it notes the behavior changes present in 5.3.0.
How you Can Help
You can help deliver 5.3.0 by contributing in one of many ways:
- Check the documentation for 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.3.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.3.0, we're early in the process of planning 5.3 and value community feedback.
Contributors to 5.3.0-RC1
Thank you to all the contributors that have contributed to this release:
- ADmad
- Alberto G. Rodriguez
- Christian
- Corey Taylor
- Jamison Bryant
- Jasper Smet
- Juhani Aronen
- Kevin Pfeifer
- Lauri Tunnela
- Marcelo Rocha
- Mark Scherer
- Mark Story
- Murl080
- Nicos Panayides
- nook24
- Steve
- Umer Salman
- Val Bancer
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.2.9 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.2.9. 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.9. See the changelog for every commit.
- Improve PHPUnit usage in tests.
- Fixed DI integration for Components.
- Type annotations for
LocatorAwareTrait::fetchTable()have been improved so that IDEs / static analyzer can now recognize the specific table type for the returned value, when the method is called with FQCN. - Fixed default value reflection and for SQLite boolean columns.
- Fixed how
Socketdetects connection interruptions, by deprecating$connectedproperty, and usingis_resource()instead. This should improve behavior ofSmtpTransportin long running processes. - Improved typehints for
SelectQuery.
Contributors to 5.2.9
Thank you to all the contributors that submitted a pull request:
- Adam Halfar
- ADmad
- Alberto Pagliarini
- kolorafa
- 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.8 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.2.8. This is a maintenance release for the 5.2 branch that fixes several ,community reported issues and regressions. 5.2.8 also contains a fix for a potential security issue in the query builder. When using already executed queries as subquery expressions, bound parameter values were overwritten which could lead to inccorrect query results. Other usage of subqueries are not impacted.
I'd like to welcome josbeir to the CakePHP team. They have been actively been developing a refesh of the documentation. You can see a development preview of the documentation at newbook.cakephp.org. If you have any feedback about the new documentation site, please open an issue in GitHub.
Bugfixes
You can expect the following changes in 5.2.8. See the changelog for every commit.
- Improved type checks and null coalescing operator usage.
- Fixed route generation when routes are defined with null
prefixvalues. - Improved type annotations in collection classes.
- Fixed more compatibility issues with PHP 8.5.
- Fixed loading nested associations with
Table::loadInto(). - Fixed usage of
lockoption forPaginatorHelper::sort(). - Fixed an access before initialization in
RedisEngine.
Contributors to 5.2.8
A special thanks to Kei Akiyama for reporting the vulnerability in the query builder. As always, thank you to everyone who submitted a pull request:
- ADmad
- Arshid
- Marcelo Rocha
- Mark Scherer
- Mark Story
- othercorey
As always, we would like to also thank all the contributors that opened issues, or updated the documentation.
CakePHP 5.2.7 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.2.7. 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.7. See the changelog for every commit.
- Fixed regression where added rules were enabled for delete operations by
default. - Updated
Validation::uuid()to accept V7 UUIDs. - Fixed array value handling in
getEnv(). - Fixed flaky tests for Arabic-Indic numeral output.
- Fixed hidden validation messages in nested entities from validation and domain rule failures. Now validation errors are available for nested entities in the
_rulekey. - XML from
Xml::fromArray()is now validated before being returned. This prevents invalid XML from being generated by invalid input. Now anXmlExceptionwill be thrown. - Updated for PHP 8.5 deprecations.
- Cleaned up plugin configuration after test runs.
- Fixed column comment quoting in the MySQL schema dialect.
- Implemented missing support for
QueryExpressionas schema column defaults. This was a porting gap when moving code from migrations to cakephp/database.
Contributors to 5.2.7
Thank you to all the contributors that submitted a pull request:
- ADmad
- Arshid
- 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.6 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.2.6. 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.6. See the changelog for every commit.
- Pagination now uses a cloned query to get a count instead of using the loaded records.
- Improved API docs.
- Fixed generation and reflection of unsigned integer column types in sqlite.
- Fixed deprecation errors in
FormProtectionComponent. - Fixed translate behavior with iI8n locale that has options defined.
- Improved exception messages in
SelectQuery. - Fixed error when xdebug is enabled and uninitialized properties are accessed.
- You can now join and contain the same table in an
loadInto()operation. - Datetime validation correctly handles booleans now.
Contributors to 5.2.6
- ADmad
- Corey Taylor
- Eriknag
- Felix Kempf
- freefri
- Juan Pablo Ramirez
- Kevin Pfeifer
- Mark Scherer
- Mark Story
- wowDAS Markus Ramšak
Thank you to all the contributors that submitted a pull request:
As always, we would like to also thank all the contributors that opened issues, or updated the documentation.
CakePHP 4.6.2 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 4.6.2. 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.2. See the changelog for every commit.
- Fix
InvalidArgumentExceptionwhen joining and containing the same table in aloadInto()call. - Updated dependency constraints.
Contributors to 4.6.2
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.5 released
The CakePHP core team is happy to announce the immediate availability of CakePHP 5.2.5. 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.5. See the changelog for every commit.
- Fixed
routes generatenot working with names containing:. - Improved API documentation.
- Fixed
LoggedQueryfrom applying undefined attributes and emitting warnings. - If
Session.timeoutis not defined, PHP definedsession.gc_maxlifetimewill be used as the lifetime of the session. This better aligns timeouts with simpler settings. - Improved data provider usage in test cases.
- Fixed session assertions when
enableRetainFlashMessages()has been used. - Events that are triggered with a null subject do not emit deprecation warnings.
- Fixed chained
find()calls with overlapping parameters getting incorrect values. - Improve
toDateTime()to not return null when passedDate. - Fixed invalid stream constructor when
RunInSeparateProcessis used. - Update plural rules for French, Italian, Spanish and Portuguese based on CLDR v47. These languages have support for additional plural forms.
Contributors to 5.2.5
Thank you to all the contributors that submitted a pull request:
- ADmad
- Corey Taylor
- Erik Nagelkerke
- Ishan Vyas
- Jeremy Harris
- Kevin Pfeifer
- k-pon-jp
- Mark Scherer
- Mark Story
- Nicos Panayides
- othercorey
As always, we would like to also thank all the contributors that opened issues, or updated the documentation.