Upgrading from 4.4.6 to 4.4.7

Please refer to the upgrade instructions corresponding to your installation method.

Mandatory File Changes

URI Security

The feature to check if URIs do not contain not permitted strings has been added. This check is equivalent to the URI Security found in CodeIgniter 3.

We recommend you enable this feature. Add the following to app/Config/App.php:

public string $permittedURIChars = 'a-z 0-9~%.:_\-';.

See URI Security for details.

Error Files

The error page has been updated. Please update the following files:

  • app/Views/errors/html/debug.css

  • app/Views/errors/html/error_exception.php

Breaking Changes

Paths in Controller Filters

A bug where URI paths processed by Controller Filters were not URL-decoded has been fixed.

Note

Note that Router processes URL-decoded URI paths.

Config\Filters has some places to specify the URI paths. If the paths have different values when URL-decoded, change them to the URL-decoded values.

E.g.,:

public array $globals = [
    'before' => [
        'csrf' => ['except' => '%E6%97%A5%E6%9C%AC%E8%AA%9E/*'],
    ],
    // ...
];

public array $globals = [
    'before' => [
        'csrf' => ['except' => '日本語/*'],
    ],
    // ...
];

Time::difference() and DST

In previous versions, when comparing dates with Time::difference(), unexpected results were returned if the date included a day different from 24 hours due to Daylight Saving Time (DST). See Note in Times and Dates for details.

This bug has been fixed, so date comparisons will now be shifted by one day in such cases.

In the unlikely event that you wish to maintain the behavior of the previous versions, change the time zone of both dates being compared to UTC before passing them to Time::difference().

Project Files

Some files in the project space (root, app, public, writable) received updates. Due to these files being outside of the system scope they will not be changed without your intervention.

There are some third-party CodeIgniter modules available to assist with merging changes to the project space: Explore on Packagist.

Content Changes

The following files received significant changes (including deprecations or visual adjustments) and it is recommended that you merge the updated versions with your application:

Config

  • app/Config/App.php
    • The property $permittedURIChars was added. See URI Security for details.

All Changes

This is a list of all files in the project space that received changes; many will be simple comments or formatting that have no effect on the runtime:

  • app/Config/App.php

  • app/Config/Cache.php

  • app/Config/ContentSecurityPolicy.php

  • app/Config/Database.php

  • app/Config/Exceptions.php

  • app/Config/Filters.php

  • app/Config/Format.php

  • app/Config/Logger.php

  • app/Config/Mimes.php

  • app/Config/Routing.php

  • app/Config/Toolbar.php

  • app/Config/Validation.php

  • app/Config/View.php

  • app/Controllers/BaseController.php

  • app/Views/errors/html/debug.css

  • app/Views/errors/html/error_exception.php

  • composer.json