You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: user_guide_src/source/changelogs/v4.7.0.rst
+16-2Lines changed: 16 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,7 @@ Highlights
15
15
**********
16
16
17
17
- Update minimal PHP requirement to ``8.2``.
18
+
- Added experimental **FrankenPHP Worker Mode** support for improved performance.
18
19
19
20
********
20
21
BREAKING
@@ -270,21 +271,27 @@ Libraries
270
271
- **Image:** The ``ImageMagickHandler`` has been rewritten to rely solely on the PHP ``imagick`` extension.
271
272
- **Image:** Added ``ImageMagickHandler::clearMetadata()`` method to remove image metadata for privacy protection.
272
273
- **ResponseTrait:** Added ``paginate``` method to simplify paginated API responses. See :ref:`ResponseTrait::paginate() <api_response_trait_paginate>` for details.
273
-
- **Session:** Added ``persistent`` config item to redis handler.
274
+
- **Session:** Added ``persistent`` config item to ``RedisHandler``.
275
+
- **Session:** Added connection persistence for Redis and Memcached session handlers via ``PersistsConnection`` trait, improving performance in worker mode by reusing connections across requests.
274
276
- **Time:** added methods ``Time::addCalendarMonths()`` and ``Time::subCalendarMonths()``
275
277
- **Time:** Added ``Time::isPast()`` and ``Time::isFuture()`` convenience methods. See :ref:`isPast <time-comparing-two-times-isPast>` and :ref:`isFuture <time-comparing-two-times-isFuture>` for details.
276
-
- **View:** Added the ability to override namespaced views (e.g., from modules/packages) by placing a matching file structure within the **app/Views/overrides** directory. See :ref:`Overriding Namespaced Views <views-overriding-namespaced-views>` for details.
277
278
- **Toolbar:** Fixed an issue where the Debug Toolbar was incorrectly injected into responses generated by third-party libraries (e.g., Dompdf) that use native PHP headers instead of the framework's Response object.
279
+
- **View:** Added the ability to override namespaced views (e.g., from modules/packages) by placing a matching file structure within the **app/Views/overrides** directory. See :ref:`Overriding Namespaced Views <views-overriding-namespaced-views>` for details.
280
+
- **Worker Mode:** Added experimental FrankenPHP Worker Mode support, allowing CodeIgniter to handle multiple HTTP requests within the same PHP process for 2-3x performance improvements. See :doc:`Worker Mode </installation/worker_mode>` for details.
278
281
279
282
Commands
280
283
========
281
284
285
+
- Added ``php spark worker:install`` command to generate FrankenPHP worker mode files (Caddyfile and worker entry point).
- **BaseConnection:** Added ``ping()`` method to check if the database connection is still alive. Postgre uses native ``pg_ping()``, other drivers use ``SELECT 1``.
288
295
- **Exception Logging:** All DB drivers now log database exceptions uniformly. Previously, each driver had its own log format.
289
296
290
297
Query Builder
@@ -326,10 +333,17 @@ Message Changes
326
333
Changes
327
334
*******
328
335
336
+
- **Boot:** Added ``Boot::bootWorker()`` method for one-time worker initialization.
337
+
- **CodeIgniter:** Added ``CodeIgniter::resetForWorkerMode()`` method to reset request-specific state between worker requests.
- **Cookie:** The ``CookieInterface::EXPIRES_FORMAT`` has been changed to ``D, d M Y H:i:s T`` to follow the recommended format in RFC 7231.
340
+
- **DatabaseConfig:** Added ``Config::validateForWorkerMode()`` and ``Config::cleanupForWorkerMode()`` methods for database connection management in worker mode.
0 commit comments