The CakePHP core team is happy to announce the immediate availability of CakePHP 4.0.0-RC2. This is the second and hopefully final release candidate for 4.0.0, and contains all the major features that are planned for 4.0.0. If no major issues are reported a stable release will be packaged in two weeks.
Updating to the RC
You can use composer to upgrade to the beta version of CakePHP 4.0.0:
php composer.phar require --update-with-dependencies "cakephp/cakephp:4.0.0-RC2"
We would greatly appreciate it if you temporarily upgraded your application, and ran your tests. By opening issues for any regressions in the release candidate, we can help ensure a smoother release of 4.0.0 before the stable release.
What's new in 4.0.0?
The migration guide has a complete list of what's new in 4.0.0, and what has been deprecated. We recommend you give that page a read when upgrading.
Changes since 4.0.0-RC1
Validation::compareFields()
now works with null values.- Email attachments now URL encode filenames with non-ascii characters.
- Added
assertRedirectEquals()
to allow assertions without the base path being added. - Removed
Http\Server::setRunner()
, as the runner can be provided as a constructor argument now. - Improved error messages from
QueryExpressions
when null is used with an incompatible operator. - Added deprecation warnings for
Validator::allowEmpty()
andValidator::notEmpty()
. - The
safe
option was removed fromHtmlHelper::script()
andscriptBlock()
. This option is not needed in an HTML5 context. HtmlHelper::docType()
is removed.- The
console
package was more thoroughly tested in isolation and several problems were fixed. FormProtectionComponent
now works with applications in sub-directories.Validator::errors()
was deprecated and is replaced byvalidate()
.
Contributors to 4.0.0-RC2
Thank you to all the contributors that helped make this release happen:
- ADmad
- Chetan Varshney
- Corey Taylor
- Edgaras Janušauskas
- Mark Scherer
- Mark Story
- Martin Matthaei
- gregs
- othercorey
- saeideng
As always, we would like to thank all the contributors that opened issues, created pull requests or updated the documentation.