See what's new in CakePHP CakePHP 4 Strawberry
[View this email in your browser]( CAKEFEST UPDATES The event was great for in person and virtual attendees. If you feel like you missed out, not to worry! The videos are still available on our YouTube channel (edited ones coming soon) and you can also read the recap blog! [CakeFest Recap]( We'd love to hear your thoughts: cakefest@cakephp.org [CakePHP 4.5.0]( Improvements: - bin/cake cache clear_group was added. This command gives a CLI interface to clearing a specific cache group.
- The Chronos class once again extends DateTimeImmutable and therefore implements DateTimeInterface. ChronosDate and ChronosTime do not. Several parameters were expanded to allow DateTimeInterface instead of requiring only Chronos objects.
- ComponentRegistry is now automatically added to your application's DI container.
- Controller::addViewClasses() was added. This method lets you build a controller's view classes programatically.
- Database and ORM connections now support read and write connection roles. Connection roles let you scale an application up by using read-replicas. When defining connections, roles can be configured with read and write keys in the connection config that override the shared config.
- New methods were added to queries to select the read or write connection role to be used.
- ModelAwareTrait::fetchModel() was added. This method works similar to loadModel() but does not set the model as an attribute.
- The development error page design has been improved. It now renders chained exceptions and makes navigating stack traces easier as each frame can be collapsed individually.
- Console exception messages now include stack traces for chained exceptions.
- EntityTrait::$_hasAllowsNull was added. This property allows you to incrementally opt-in to a breaking change present in 5.x for EntityTrait::has().
- View::addHelper() was added. This method compliments addBehavior() and addComponent(). Contributors: ADmad, Alejandro Ibarra, Brian French, Chris Nizzardini, Jaro Varga, Jose Daian, Kevin Pfeifer, Lars Ebert, leon.schaub, Marcelo Rocha, Mark Scherer, Mark Story, Matthias Wirtz, othercorey, Roland Waldner, wowDAS Ing. Markus Ramšak [CakePHP 5.0.1]( Improvements: You can expect the following changes in 5.0.1. See the [changelog]( for every commit. - Allow FormProtection component to have its session id source customized in subclasses.
- Fixed potential email address manipulation if unvalided address data was set into Cake\Mailer\Message. Thank you to Waldemar Bartikowski who reported the issue via our security mailing list.
- Fixed errors arising from plugin helpers being loaded within other plugin helpers, when the parent helper is loaded without a plugin scope.
- PaginatedResultSet is now JsonSerializable.
- Replaced usage of include_once when Application loads plugin configuration.
- Fixed broken links in API documentation links to MDN.
- View::getConfig() is now public.
- ORM\Marshaller::one() now uses newEmptyEntity() improving compatibility with subclass implementations.
- Adding methods with getMockForModel() is deprecated because of changes in PHPUnit.
- Fixed Cake\Http\Client cookie parsing with invalid values that lack both a value and = delimiter.
- Collection\SortIterator is now compatible with Chronos types.
- Fixed source line attribution in the dd() method.
- Fixed defaults being mutated in DashedRoute and InflectedRoute after match() is called.
Contributors: ADmad, Jorge González, Kevin Pfeifer, Mark Scherer, Mark Story, andrii-pukhalevych, breno, othercorey, wowDAS Ing. Markus MEET THE CORE Introducing the minds behind the framework - and pretty soon they'll be answering YOUR questions. But first... let's get to know the team. Meet: Mark Scherer / dereuromark Tell us who you are and EVERYTHING about you (or at least what you want the world to know):
My name is Mark and I live in Berlin, Germany. So far web development has always been my primary field. I tried some app/android stuff, but all the XML markup scared me away at the time. I like the "web" results of my coding, as those sites can easily be accessed from all around the world. It scales therefore quite easily compared to anything device-related. In the recent years I have been doing more again around automation and tooling, though. One of my passion topics was a fully automated state machine driven process around releasing and development support. I could probably also use more AI in my work and projects, but I am sure this will come with time. There are interesting times ahead and I am curious where it leads me and the PHP language. [](
[( How long have you been part of the CakePHP core? What about the CakePHP community in general - what got you started?
Since 2012 afaik. I started with Cake 1.2/1.3 back in 2007ish. I wanted to use a best practice RAD framework (conventions over configuration), and there were not that many yet available, actually none other than CakePHP if I recall correctly. At the time contribution was quite hard, since it was SVN based. Chat was also rather limited, so where community and plugins. That all changed quite a bit with Git and GitHub. Becoming a contributor is usually a natural process. You find issues or bugs in the code you want to see fixed or improved. You are writing custom extensions that could be a feature directly in core. Those kind of things you make a PR for, get core feedback and eventually get it merged. Contributing therefore helps yourself, since those changes will be shipped with an upcoming release, no more hacks on your side. The more you actively contribute, the higher the chances the core team reaches out and wants to get to know you more, maybe inviting you to the team. What are your thoughts so far on CakePHP 5?
A lot of legacy left behind. 5.0 ships a new modern and future proof version of Cake for years to come. Anything that could be backported, got a backport in 4.5. So overall, the upgrade path should be a piece of cake when using some of the automated upgrade tooling available (rector for signature changes, ...) Thanks again to our CakeFest sponsors! PLUGIN SPOTLIGHT
Asset Compress Asset Compress is CakePHP plugin for helping reduce the number of requests, and optimizing the remaining requests your application makes for Javascript and CSS files. Latest release: [5.0.0]( See details: [( CakePHP 5 - CHIFFON! CakePHP 5 has been released and we are getting great feedback. Want to learn more? Check out [THE BOOK](. See more details: [UPGRADE TOOL]( Want to share your thoughts? Tell us [HERE](mailto:community@cakephp.org?subject=Cake5%20Wishes). Have a CakePHP question? The community is available to help. Visit one of these support channels for help with baking: Discourse forum: []( Stack Overflow: [( IRC: [( Slack: []( CakePHP 4 Upgrade Service - By CakeDC
The team from [CakeDC]( is offering upgrade services! Get your CakePHP 2/3 app upgraded to CakePHP 4 by the CakePHP experts. Interested in finding out more? [Contact them today!](
*T&Cs apply [Twitter]( [Facebook]( [Website]( [Email](mailto:community@cakephp.org) [GitHub]( [YouTube]( Copyright © 2016 [Cake Software Foundation, Inc.]( All rights reserved. Want to change how you receive these emails?
You can [update your preferences]( or [unsubscribe from this list](