Release Date: Unreleased
4.7.4 release of CodeIgniter4
- API: Fixed a bug in Transformers where the root request's
fieldsandincludequery parameters leaked into nested transformers created insideinclude*()methods, causing incorrect field filtering, unexpected includes, or infinite recursion. - Commands: Fixed a bug where
make:model --return entitydid not preserve sub-namespaces when generating the related Entity class. - Common: Fixed a bug in
env()where aTypeErrorcould be thrown when non-string values were passed. - Common: Fixed
esc()to propagate encoding correctly and prevent reference leaks. - Commands: Fixed a bug where
spark lang:findtreated translation keys already provided by the framework or another namespace (such asErrors.*insystem/Language) as new, listing them under--show-newand writing untranslated placeholders intoapp/Languagethat overrode the existing translations. - Config: Fixed a bug where
BaseService::injectMockdid not applystrtolowerconsistently, causing inconsistent Service and Mock registration and resolution. - Database: Fixed a bug where
updateBatch()could be called after Query Builderwhere()conditions, even though it's not supported. In this situation, now theDatabaseExceptionis thrown. - Filters: Fixed a bug in
InvalidCharsfilter where invalid UTF-8 or control characters in array keys were not checked. - HTTP: Fixed a bug where the User Agent library reported Safari's WebKit version instead of the browser version from the
Versiontoken. - Model: Fixed a bug in
Model::objectToRawArray()where the$recursiveparameter was ignored. - Session: Fixed a bug in
RedisHandlerwhere the configured$lockMaxRetriesand$lockRetryIntervalvalues were not respected when acquiring session locks. - Testing: Fixed a bug where using
MockInputOutputwithin a test that also usesStreamFilterTraittore down the trait's stream filters, so CLI output produced after theMockInputOutputinteraction (such as intearDown()) was no longer captured and leaked to the console. - Validation: Fixed bugs in the
required_withoutrule logic where using array dot notation caused early exits ignoring subsequent fields and triggered anUndefined array keywarning for missing keys.
See the repo's CHANGELOG.md for a complete list of bugs fixed.