Skip to content

Latest commit

 

History

History
159 lines (115 loc) · 5.84 KB

File metadata and controls

159 lines (115 loc) · 5.84 KB

Version 4.7.0

Release Date: Unreleased

4.7.0 release of CodeIgniter4

  • Update minimal PHP requirement to 8.2.

Placeholders in the regex_match validation rule must now use double curly braces. If you previously used single braces like regex_match[/^{placeholder}$/], you must update it to use double braces: regex_match[/^{{placeholder}}$/].

This change was introduced to avoid ambiguity with regular expression syntax, where single curly braces (e.g., {1,3}) are used for quantifiers.

The insertBatch() and updateBatch() methods now honor model settings like updateOnlyChanged and allowEmptyInserts. This change ensures consistent handling across all insert/update operations.

  • Images: The ImageHandlerInterface now includes a new method: clearMetadata(). If you've implemented your own handler from scratch, you will need to provide an implementation for this method to ensure compatibility.
  • Added the SensitiveParameter attribute to various methods to conceal sensitive information from stack traces. Affected methods are:
    • CodeIgniter\Encryption\EncrypterInterface::encrypt()
    • CodeIgniter\Encryption\EncrypterInterface::decrypt()
    • CodeIgniter\Encryption\Handlers\OpenSSLHandler::encrypt()
    • CodeIgniter\Encryption\Handlers\OpenSSLHandler::decrypt()
    • CodeIgniter\Encryption\Handlers\SodiumHandler::encrypt()
    • CodeIgniter\Encryption\Handlers\SodiumHandler::decrypt()
    • CodeIgniter\HTTP\CURLRequest::setAuth()
    • CodeIgniter\HTTP\URI::setUserInfo()
    • CodeIgniter\Security\Security::derandomize()
  • Text Helper: The deprecated types in random_string() function: basic, md5, and sha1 has been removed.
  • BaseModel: The deprecated method transformDataRowToArray() has been removed.
  • CodeIgniter: The deprecated CodeIgniter\CodeIgniter::resolvePlatformExtensions() has been removed.
  • API Transformers: This new feature provides a structured way to transform data for API responses. See :ref:`API Transformers <api_transformers>` for details.
  • CLI: Added SignalTrait to provide unified handling of operating system signals in CLI commands.
  • Cache: Added async and persistent config item to Predis handler.
  • Cache: Added persistent config item to Redis handler.
  • CURLRequest: Added shareConnection config item to change default share connection.
  • CURLRequest: Added dns_cache_timeout option to change default DNS cache timeout.
  • CURLRequest: Added fresh_connect options to enable/disable request fresh connection.
  • DataConverter: Added EnumCast caster for database and entity.
  • Email: Added support for choosing the SMTP authorization method. You can change it via Config\Email::$SMTPAuthMethod option.
  • Image: The ImageMagickHandler has been rewritten to rely solely on the PHP imagick extension.
  • Image: Added ImageMagickHandler::clearMetadata() method to remove image metadata for privacy protection.
  • ResponseTrait: Added paginate` method to simplify paginated API responses. See :ref:`ResponseTrait::paginate() <api_response_trait_paginate>` for details.
  • Time: added methods Time::addCalendarMonths() and Time::subCalendarMonths()
  • Exception Logging: All DB drivers now log database exceptions uniformly. Previously, each driver had its own log format.
  • MigrationRunner: Added distributed locking support to prevent concurrent migrations in multi-process environments. Enable with Config\Migrations::$lock = true.
  • UserAgents: Expanded the list of recognized robots with new search engine and service crawlers.
  • Added Email.invalidSMTPAuthMethod, Email.failureSMTPAuthMethod, CLI.signals.noPcntlExtension, CLI.signals.noPosixExtension and CLI.signals.failedSignal.
  • Deprecated Email.failedSMTPLogin and Image.libPathInvalid
  • 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.
  • Format: Added support for configuring json_encode() maximum depth via Config\Format::$jsonEncodeDepth.
  • Paths: Added support for changing the location of the .env file via the Paths::$envDirectory property.
  • Image:
    • The config property Config\Image::libraryPath has been deprecated. No longer used.
    • The exception method CodeIgniter\Images\Exceptions\ImageException::forInvalidImageLibraryPath has been deprecated. No longer used.
  • Cookie: The CookieInterface::SAMESITE_STRICT, CookieInterface::SAMESITE_LAX, and CookieInterface::SAMESITE_NONE constants are now written in ucfirst style to be consistent with usage in the rest of the framework.

See the repo's CHANGELOG.md for a complete list of bugs fixed.