Skip to content

Releases: cakephp/cakephp

CakePHP 5.3.0-RC2 released

14 Dec 05:27
5.3.0-RC2

Choose a tag to compare

Pre-release

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 ExistsInNullable rule class to make it easier to create exists in rules that allow nulls.
  • Bugfixes and Improvements to the rate limiter middleware.
  • Improved API documentation.
  • SortField treats 'desc' as reverse of the default direction now.
  • Fixed maxLimit restriction on PaginatorHelper::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 Plugin is now deprecated.
  • Added additional data to cache engine events.
  • Fixed deserialization error in TableSchema.
  • Added verbose mode output for the version command.
  • Improved error messages when a command is missing.
  • Added Http\RedirectTrait to 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 CommandHiddenInterface marker 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:

  1. 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.
  2. Try it out! Give CakePHP 5.3.0 a test drive. Let us know how upgrading went and if there were any rough spots.
  3. 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

05 Dec 22:40
5.2.10

Choose a tag to compare

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 FormProtector with IntegrationTestTrait in 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

01 Dec 16:54
4.6.3

Choose a tag to compare

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

09 Nov 04:31
5.3.0-RC1

Choose a tag to compare

Pre-release

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 symlink command now supports a --relative option to create relative path symlinks.
  • cake server now supports a --frankenphp option that will start the development server with FrankenPHP.
  • Added Configure attribute to support injecting Configure values into constructor arguments.
  • Added Query::optimizerHint() which accepts engine-specific optimizer hints.
  • Added additional database types for year, inet, cidr, and macaddr.
  • Added Date::getTimestamp(). This method returns an int of the date's timestamp.
  • Table::patchEntity(), Table::newEntity(), Marshaller::one() and Marshaller::many() now accept a strictFields option that only applies validation to the fields listed in the fields option.
  • Added TableContainer that 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 sortableFields option now of Paginator now accepts a callable that receives a SortableFieldsBuilder instance, allowing you to map friendly sort keys to database fields with multi-column sorting and direction control.
  • Added SortField class 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() and assertRedirectBackToReferer() were added to improve ergonomics of asserting redirects.
  • HtmlHelper::scriptStart() and scriptEnd() 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\RateLimiterMiddleware was 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:

  1. 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.
  2. Try it out! Give CakePHP 5.3.0 a test drive. Let us know how upgrading went and if there were any rough spots.
  3. 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

17 Oct 03:27
5.2.9

Choose a tag to compare

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 Socket detects connection interruptions, by deprecating $connected property, and using is_resource() instead. This should improve behavior of SmtpTransport in 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

24 Sep 03:05
5.2.8

Choose a tag to compare

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 prefix values.
  • Improved type annotations in collection classes.
  • Fixed more compatibility issues with PHP 8.5.
  • Fixed loading nested associations with Table::loadInto().
  • Fixed usage of lock option for PaginatorHelper::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

31 Aug 02:36
5.2.7

Choose a tag to compare

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 _rule key.
  • XML from Xml::fromArray() is now validated before being returned. This prevents invalid XML from being generated by invalid input. Now an XmlException will 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 QueryExpression as 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

02 Aug 03:28
5.2.6

Choose a tag to compare

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

27 Jul 03:45
4.6.2

Choose a tag to compare

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 InvalidArgumentException when joining and containing the same table in a loadInto() 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

21 Jun 03:46
5.2.5

Choose a tag to compare

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 generate not working with names containing :.
  • Improved API documentation.
  • Fixed LoggedQuery from applying undefined attributes and emitting warnings.
  • If Session.timeout is not defined, PHP defined session.gc_maxlifetime will 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 passed Date.
  • Fixed invalid stream constructor when RunInSeparateProcess is 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.