4.4.3 から 4.4.4 へのアップグレード

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

必須ファイルの変更

エラーファイル

正しいエラーメッセージを表示するために、以下のファイルを更新してください。

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

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

破壊的変更

ドット配列構文を使用したバリデーション

バリデーションルールでドット配列構文を使用している場合、`*` が間違った次元にデータを検証するバグが修正されました。

以前のバージョンでは、ルールキー `contacts.*.name` は `contacts.*.name`、`contacts.*.*.name`、`contacts.*.*.*.name` など、任意のレベルのデータを誤って取得していました。

詳細は以下のコードで説明しています。

use Config\Services;

$validation = Services::validation();

$data = [
    'contacts' => [
        'name' => 'Joe Smith',
        'just' => [
            'friends' => [
                ['name' => 'SATO Taro'],
                ['name' => 'Li Ming'],
                ['name' => 'Heinz Müller'],
            ],
        ],
    ],
];

$validation->setRules(
    ['contacts.*.name' => 'required|max_length[8]']
);

$validation->run($data); // false

d($validation->getErrors());
/*
 Before: Captured `contacts.*.*.*.name` incorrectly.
 [
   contacts.just.friends.0.name => "The contacts.*.name field cannot exceed 8 characters in length.",
   contacts.just.friends.2.name => "The contacts.*.name field cannot exceed 8 characters in length.",
 ]

 After: Captures no data for `contacts.*.name`.
 [
   contacts.*.name => string (38) "The contacts.*.name field is required.",
 ]
*/

このバグに依存するコードがある場合は、ルールキーを修正してください。

バリデーションルール matches と differs

厳密ルールと従来ルールで `matches` と `differs` が文字列以外の型のデータを検証する場合のバグが修正されたため、これらのルールを使用していて文字列以外のデータを検証している場合、バリデーションの結果が変更される可能性があります(修正されました)。

従来のルールは、文字列以外のデータを検証するために使用しないでください。

CURLRequest での `ssl_key` オプションの使用が削除されました

CURLRequest オプション `ssl_key` は、もはや認識されません。使用している場合、`ssl_key` オプションは CURLRequest の CA バンドルへのパスを定義するために `verify` オプションに置き換える必要があります。

CURLRequest オプション `verify` は、通常どおりブール値も受け入れます。

プロジェクトファイル

**プロジェクト空間**(ルート、app、public、writable)の一部のファイルが更新されました。これらのファイルは**システム**のスコープ外にあるため、あなたの介入なしに変更されることはありません。

プロジェクト空間への変更のマージを支援するサードパーティ製の CodeIgniter モジュールがいくつかあります。Packagist で確認

すべての変更

これは、変更を受けた**プロジェクト空間**内のすべてのファイルのリストです。多くは、ランタイムに影響を与えない単純なコメントやフォーマットです。

  • app/Config/App.php

  • app/Config/Autoload.php

  • app/Config/Boot/development.php

  • app/Config/Boot/testing.php

  • app/Config/Cache.php

  • app/Config/Email.php

  • app/Config/Filters.php

  • app/Config/Kint.php

  • app/Config/Modules.php

  • app/Config/Publisher.php

  • app/Config/Session.php

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

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

  • composer.json

  • env

  • spark