@@ -26,6 +26,10 @@ Running `bin/cake` without providing a command name no longer displays the
2626"No command provided" error message. Instead, the ` help ` command is shown
2727directly.
2828
29+ Unknown tokens after a parent command with subcommands are now rejected
30+ (e.g. ` bin/cake i18n nonsense ` ) instead of silently invoking the parent.
31+ See [ Subcommand Validation] ( ../console-commands/commands#subcommand-validation ) .
32+
2933The ` help ` command is now hidden from command listings (via
3034` CommandHiddenInterface ` ). It remains accessible by running ` bin/cake help ` or
3135` bin/cake help <command> ` .
@@ -68,6 +72,16 @@ See [Application and Plugin Events](../core-libraries/events#registering-event-l
6872- Loading a component with the same alias as the controller's default table now
6973 triggers a warning. See [ Component Alias Conflicts] ( ../controllers/components#component-alias-conflicts ) .
7074
75+ ### View
76+
77+ - ` FormHelper ` now wraps hidden form blocks (CSRF, FormProtection,
78+ ` postLink() ` / ` postButton() ` ) with the HTML5 boolean ` hidden ` attribute
79+ instead of an inline ` style="display:none;" ` . This makes the default markup
80+ compatible with a strict Content-Security-Policy (no need for
81+ ` style-src 'unsafe-inline' ` ). If you previously selected those wrappers via
82+ CSS (e.g. ` div[style="display:none;"] ` ), switch to ` [hidden] ` or set the
83+ ` hiddenClass ` template option to opt out and emit a class instead.
84+
7185## Deprecations
7286
7387### Command Helpers
@@ -145,6 +159,11 @@ See [Application and Plugin Events](../core-libraries/events#registering-event-l
145159 provides constants (` Index::GIN ` , ` Index::GIST ` , ` Index::SPGIST ` ,
146160 ` Index::BRIN ` , ` Index::HASH ` ) for these access methods.
147161 See [ Reading Indexes and Constraints] ( ../orm/schema-system#reading-indexes-and-constraints ) .
162+ - Added ` Cake\Database\Type\EnumLabelTrait ` and the
163+ ` Cake\Database\Type\Attribute\Label ` attribute. The trait provides a default
164+ ` label() ` implementation backed by the translator and the attribute lets
165+ individual cases override the derived label. See
166+ [ EnumLabelTrait and the Label Attribute] ( ../orm/database-basics#enumlabeltrait-and-the-label-attribute ) .
148167
149168### Http
150169
@@ -166,6 +185,10 @@ See [Application and Plugin Events](../core-libraries/events#registering-event-l
166185- Added ` I18n::setCacheConfig() ` to route translator persistence to a Cache
167186 config other than the default ` _cake_translations_ ` .
168187- The ` cake i18n extract ` command now also extracts enum labels using the #[ Label] attribute.
188+ - Added ` PluralRules::setRule() ` to register a custom Gettext plural rule for
189+ a locale whose built-in form is missing or differs from the layout used by
190+ your .po/.mo files. See
191+ [ Customizing Plural Rules] ( ../core-libraries/internationalization-and-localization#customizing-plural-rules ) .
169192
170193### ORM
171194
@@ -191,3 +214,6 @@ See [Application and Plugin Events](../core-libraries/events#registering-event-l
191214
192215- Added ` {{inputId}} ` template variable to ` inputContainer ` and ` error ` templates
193216 in FormHelper. See [ Built-in Template Variables] ( ../views/helpers/form#built-in-template-variables ) .
217+ - ` FormHelper::enumOptions() ` is now public. This lets you build ` select `
218+ options from a backed enum class even when the form was created without
219+ an entity context. See [ Creating Select Pickers] ( ../views/helpers/form#creating-select-pickers ) .
0 commit comments