CakePHP 3.4.8 Released

The CakePHP core team is happy to announce the immediate availability of CakePHP 3.4.8. This is a maintenance release for the 3.4 branch that fixes several community reported issues.

Bugfixes & New Features

You can expect the following changes in 3.4.8. See the changelog for every commit.

  • Improved composer keywords for sub-split packages.
  • BelongsToMany::link() now persist multiple operations correctly.
  • Improved API documentation.
  • PO file parsing correctly parses messages when the same message key is defined with a context and without contexts. This changes the internal data representation of translated messages, you should take care to clear your i18n cache data when upgrading.
  • ValidationRule no longer raises an unpack error when parameters are an associative array.
  • RouteBuilder::prefix() now supports a path option which allows you to customize the path segment used for prefix routing scopes.
  • Logging will now log the JSON encoded version of entities. Furthermore, JsonSerializable instances that are logged will not encode Unicode data.
  • Paginated queries that use matching() calls inside other matching() calls no longer emit invalid SQL.
  • Autolinking better handles URLs generated by AngularJS.
  • Mailer correctly proxies the getX methods on Email.
  • Database\Query::clause() now raises exceptions when reading unknown clauses.
  • RedisEngine::add() now uses setTimeout() to set the TTL, instead of writing the key twice.
  • RedisEngine::increment() and decrement() now set the engine’s TTL on counters. This makes redis counters have consistent behavior with Memcached counters.
  • ISO8601 datetimes that use the ‘Z’ timezone are parsed correctly now.
  • ProgressHelper::init(), draw() and increment() now return $this.
  • MySQL schema reflection no longer forces primary key columns to be be auto-incrementing when autoIncrement was explicitly disabled.
  • FormHelper::radio() now handles disabled attribute generation when radio options are defined with the complex form, and only a subset of radio options have been disabled.
  • TableHelper::output() no longer requires all rows to have the same keys.

Contributors to 3.4.8

Thank you to all the contributors that helped make this release happen:

  • Albert Cansado Solà
  • Bryan Crowe
  • Florian Brede
  • Ian den Hartog
  • Jan Zdunek
  • Jeremy Harris
  • José Lorenzo Rodríguez
  • Julian Carrivick
  • Marc Würth
  • Mark Scherer
  • Mark Story
  • Mehdi Fathi
  • Michael Hoffmann
  • Mirko Pagliai
  • Rachman Chavik
  • Sevvlor
  • Yasuo Harada
  • inoas

As always, we would like to thank all the contributors that opened issues, created pull requests or updated the documentation.

Download a packaged release on github.