4.1.9から4.2.0へのアップグレード

インストール方法に対応するアップグレード手順を参照してください。

必須のファイル変更

index.phpとspark

以下のファイルに重大な変更が加えられました。アプリケーションと更新されたバージョンをマージする必要があります

  • public/index.php

  • spark

重要

上記の2つのファイルを更新しないと、composer updateの実行後、CodeIgniterはまったく動作しません。

アップグレード手順の例は次のとおりです。

composer update
cp vendor/codeigniter4/framework/public/index.php public/index.php
cp vendor/codeigniter4/framework/spark .

Config/Constants.php

定数EVENT_PRIORITY_LOWEVENT_PRIORITY_NORMALEVENT_PRIORITY_HIGHは非推奨となり、定義はapp/Config/Constants.phpに移動しました。これらの定数を使用する場合は、app/Config/Constants.phpで定義してください。または、新しいクラス定数CodeIgniter\Events\Events::PRIORITY_LOWCodeIgniter\Events\Events::PRIORITY_NORMALCodeIgniter\Events\Events::PRIORITY_HIGHを使用してください。

composer.json

Composerを使用し、CodeIgniter v4.1.9以前をインストールした場合、/composer.jsonautoload.psr-4App\\Config\\の名前空間が以下のようにある場合は、これらの行を削除し、composer dump-autoloadを実行する必要があります。

{
    ...
    "autoload": {
        "psr-4": {
            "App\\": "app",             <-- Remove this line
            "Config\\": "app/Config"    <-- Remove this line
        }
    },
    ...
}

破壊的変更

  • system/bootstrap.phpファイルは、CodeIgniterインスタンスを返さなくなり、.envファイル(現在はindex.phpsparkで処理)をロードしなくなりました。これらの動作を期待するコードがある場合は、動作しなくなり、変更する必要があります。これは、プリロードを実装しやすくするために変更されました。

破壊的な機能強化

  • Validation::setRule()のメソッドシグネチャが変更されました。$rulesパラメーターのstring型ヒントが削除されました。拡張クラスも同様に、LSPを壊さないようにパラメーターを削除する必要があります。

  • CodeIgniter\Database\BaseBuilder::join()およびCodeIgniter\Database\*\Builder::join()のメソッドシグネチャが変更されました。$condパラメーターのstring型ヒントが削除されました。拡張クラスも同様に、LSPを壊さないようにパラメーターを削除する必要があります。

プロジェクトファイル

プロジェクトスペース(root、app、public、writable)内の多数のファイルが更新されました。これらのファイルはシステムスコープの外部にあるため、ユーザーの介入なしに変更されることはありません。プロジェクトスペースへの変更のマージを支援するサードパーティのCodeIgniterモジュールがいくつかあります。Packagistで探索

バグ修正のための非常にまれなケースを除き、プロジェクトスペースのファイルに対して行われた変更でアプリケーションが壊れることはありません。ここに記載されているすべての変更は、次のメジャーバージョンまでオプションであり、必須の変更は上記のセクションで説明します。

コンテンツの変更

以下のファイルに重大な変更(非推奨または視覚的な調整を含む)が加えられました。更新されたバージョンをアプリケーションとマージすることをお勧めします。

  • app/Config/Routes.php
    • デフォルト設定をより安全にするために、自動ルーティングはデフォルトで無効に変更されました。

すべての変更

これは、変更されたプロジェクトスペース内のすべてのファイルのリストです。多くは実行時に影響のない簡単なコメントまたはフォーマットになります。

  • app/Config/App.php

  • app/Config/Constants.php

  • app/Config/ContentSecurityPolicy.php

  • app/Config/Database.php

  • app/Config/Events.php

  • app/Config/Feature.php

  • app/Config/Filters.php

  • app/Config/Format.php

  • app/Config/Logger.php

  • app/Config/Mimes.php

  • app/Config/Publisher.php

  • app/Config/Routes.php

  • app/Config/Security.php

  • app/Config/Validation.php

  • app/Config/View.php

  • app/Controllers/BaseController.php

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

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

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

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

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

  • app/Views/welcome_message.php

  • app/index.html

  • preload.php

  • public/index.php

  • spark