@@ -15,12 +15,60 @@ Highlights
1515**********
1616
1717- Update minimal PHP requirement to 8.1.
18+ - Update minimal PHPUnit requirement to 10.5.
1819- TBD
1920
2021************
2122Enhancements
2223************
2324
25+ .. _v450-required-filters :
26+
27+ Required Filters
28+ ================
29+
30+ New :ref: `Required Filters <filters-required >` have been introduced. They are
31+ special filters that are applied before and after other kinds of filters, and
32+ always applied even if a route does not exist.
33+
34+ The following existing functionalities have been reimplemented as Required Filters.
35+
36+ - :ref: `Force Global Secure Requests <forcehttps >`
37+ - :doc: `../general/caching `
38+ - :ref: `performancemetrics `
39+ - :ref: `the-debug-toolbar `
40+
41+ The Benchmark **Timers ** used by Debug Toolbar now collect *Required Before Filters *
42+ and *Required After Filters * data.
43+
44+ The benchmark points have been changed:
45+
46+ - Before
47+
48+ - ``bootstrap ``: Creating Request and Response objects, Event ``pre_system ``, Instantiating RouteCollection object, Loading Routes files, Instantiating Router object,
49+ - ``routing ``: Routing,
50+ - After
51+
52+ - ``bootstrap ``: Creating Request and Response objects, Event ``pre_system ``.
53+ - ``required_before_filters ``: Instantiating Filters object, Running *Required Before Filters *.
54+ - ``routing ``: Instantiating RouteCollection object, Loading Routes files, Instantiating Router object, Routing,
55+
56+ Routing
57+ =======
58+
59+ - **AutoRouting Improved: ** The ``$translateUriToCamelCase `` option has been added
60+ that allows using CamelCase controller and method names. See
61+ :ref: `controller-translate-uri-to-camelcase `.
62+ - **Others: **
63+ - Added option ``$multipleSegmentsOneParam ``. When this option is
64+ enabled, a placeholder that matches multiple segments, such as ``(:any) ``, will
65+ be passed directly as it is to one parameter, even if it contains multiple segments.
66+ See :ref: `multiple-uri-segments-as-one-parameter ` for details.
67+ - Now the 404 controller's method that you set in ``$override404 `` also receive
68+ a ``PageNotFoundException `` message as the first parameter.
69+ - Now you can use the ``__invoke() `` method as the default method. See
70+ :ref: `routing-default-method `.
71+
2472Commands
2573========
2674
@@ -130,56 +178,18 @@ Libraries
130178 (``$lockRetryInterval ``) and the number of retries (``$lockMaxRetries ``).
131179 - Now you can use Redis ACL (username and password) with ``RedisHandler ``.
132180 See :ref: `sessions-redishandler-driver ` for details.
181+ - **Security: ** ``Config\Security::$redirect `` is now, by default, environment-specific.
182+ For production environment, changed to ``true `` but is still ``false `` for other
183+ environments.
133184
134185Helpers and Functions
135186=====================
136187
137- .. _v450-required-filters :
138-
139- Required Filters
140- ================
141-
142- New :ref: `Required Filters <filters-required >` have been introduced. They are
143- special filters that are applied before and after other kinds of filters, and
144- always applied even if a route does not exist.
145-
146- The following existing functionalities have been reimplemented as Required Filters.
147-
148- - :ref: `Force Global Secure Requests <forcehttps >`
149- - :doc: `../general/caching `
150- - :ref: `performancemetrics `
151- - :ref: `the-debug-toolbar `
152-
153- The Benchmark **Timers ** used by Debug Toolbar now collect *Required Before Filters *
154- and *Required After Filters * data.
155-
156- The benchmark points have been changed:
157-
158- - Before
159-
160- - ``bootstrap ``: Creating Request and Response objects, Event ``pre_system ``, Instantiating RouteCollection object, Loading Routes files, Instantiating Router object,
161- - ``routing ``: Routing,
162- - After
163-
164- - ``bootstrap ``: Creating Request and Response objects, Event ``pre_system ``.
165- - ``required_before_filters ``: Instantiating Filters object, Running *Required Before Filters *.
166- - ``routing ``: Instantiating RouteCollection object, Loading Routes files, Instantiating Router object, Routing,
167-
168188Others
169189======
170190
171- - **AutoRouting Improved: ** The ``$translateUriToCamelCase `` option has been added
172- that allows using CamelCase controller and method names. See
173- :ref: `controller-translate-uri-to-camelcase `.
174- - **Routing: **
175- - Added option ``$multipleSegmentsOneParam ``. When this option is
176- enabled, a placeholder that matches multiple segments, such as ``(:any) ``, will
177- be passed directly as it is to one parameter, even if it contains multiple segments.
178- See :ref: `multiple-uri-segments-as-one-parameter ` for details.
179- - Now the 404 controller's method that you set in ``$override404 `` also receive
180- a ``PageNotFoundException `` message as the first parameter.
181- - Now you can use the ``__invoke() `` method as the default method. See
182- :ref: `routing-default-method `.
191+ - **Bootstrap: ** The ``CodeIgniter\Boot `` class has been introduced, replacing
192+ **system/bootstrap.php **.
183193- **Autoloader: **
184194 - Autoloading performance when using Composer has been improved.
185195 Adding the ``App `` namespace in the ``autoload.psr4 `` setting in **composer.json **
@@ -188,20 +198,15 @@ Others
188198 - ``FileLocatorInterface `` has been added.
189199- **CodeIgniter: ** Added a pseudo-variable ``{memory_usage} `` to show your memory
190200 usage in your view files, which was supported by CodeIgniter 3.
191- - **CSP: ** Added ``ContentSecurityPolicy::clearDirective() `` method to clear
192- existing CSP directives. See :ref: `csp-clear-directives `.
193201- **Events: ** Added event points ``pre_command `` and ``post_command `` for Spark
194202 commands. See :ref: `Event Points <event-points-for-cli-apps >`.
195203- **HTTP: ** Added ``Message::addHeader() `` method to add another header with
196204 the same name. See :php:meth: `CodeIgniter\\ HTTP\\ Message::addHeader() `.
197205- **Web Page Caching: ** ``ResponseCache `` has been improved to include the request
198206 HTTP method in the cache key. This means that the same URI will be cached separately
199207 if the HTTP method is different.
200- - **Bootstrap: ** The ``CodeIgniter\Boot `` class has been introduced, replacing
201- **system/bootstrap.php **.
202- - **Security: ** ``Config\Security::$redirect `` is now, by default, environment-specific.
203- For production environment, changed to ``true `` but is still ``false `` for other
204- environments.
208+ - **CSP: ** Added ``ContentSecurityPolicy::clearDirective() `` method to clear
209+ existing CSP directives. See :ref: `csp-clear-directives `.
205210
206211********
207212BREAKING
0 commit comments