バージョン 4.1.2

リリース日: 2021年5月16日

CodeIgniter4 の 4.1.2 リリース

破壊的な変更

current_url() で、indexPage を含む設定で、戻り値にその値が含まれないバグを修正しました。App::$indexPage を使用しているインストールでは、current_url() およびそのすべての依存関係(レスポンステスト、ページャー、フォームヘルパー、ページャー、ビューパーサーを含む)からの値が変更されることを想定する必要があります。

機能強化

  • Webクッキーを抽象化するための新しいHTTPクラス、Cookie および CookieStore

  • HTTPテストで利用可能な新しい assertRedirectTo() アサーション。

  • error_log() に書き込む新しいロガーハンドラー、ErrorlogHandler

  • Entity。カスタム型キャスト機能が追加されました。

  • ルーティングの新しいオプション。priority オプションは、特定のルート処理の優先度を下げます。

  • Autoloader クラスは、PHPクラスを含まないファイルもロードできるようになりました。非クラス ファイルのリストは、Config\Autoload クラスの $files プロパティにリストされます。

変更点

  • ビューのレイアウトで、ネストされたセクションがサポートされるようになりました。

  • Response::getCookie は、クッキー属性の配列の代わりに Cookie インスタンスを返すようになりました。

  • Response::getCookies は、属性配列の配列の代わりに Cookie インスタンスの配列を返すようになりました。

  • 最近のブラウザのコンソールからの警告を排除するために、空のsamesite値は、クッキーディスパッチ時にデフォルトで Lax に設定されます。

  • Model::errors() および BaseModel::errors() は、常に array を返すようになりました。定義の変更はありませんでしたが、docblockが更新されました。

  • Entity::castAs の動作が変更されました。新しいパラメーター $method が追加されました。型キャストは、個別のハンドラーに移動されました。

  • Entity。タイムスタンプのキャストで、無効な値が渡されると例外がスローされるようになりました。

  • Entity::castAsJson は、外部キャストハンドラー JsonCast::get を使用します。

  • Entity::mutateDate は、外部キャストハンドラー DatetimeCast::get を使用します。

  • Config\** クラスが .env からそれぞれのプロパティの値を取得するためには、プロパティにクラスの名前を名前空間として指定する必要があるようになりました。以前は、プロパティ名だけで十分でしたが、PATH のようなシステム環境変数を取得できるため、許可されなくなりました。

  • 配列ヘルパー _array_search_dot は、@internal 用としてマークされるようになりました。これは dot_array_search で使用されているため、ユーザーは _array_search_dot をコード内で直接使用しないでください。

  • CacheInterface::getMetaData() は、ミスの場合には null を返し、少なくとも「expires」キーが絶対エポック満了に設定された配列を返し、「期限切れなし」の場合は null を返します。File、Memcached、Wincacheハンドラーは、false を返しますが、これは将来のリリースで null になります。

非推奨

  • 非推奨の CodeIgniter\View\View::$currentSection プロパティ。

  • 無効なクッキーのsamesiteに関する言語文字列と例外は、CookieException の独自の例外メッセージでは非推奨です。

  • CodeIgniterEntityCodeIgniterEntityEntity に代わって非推奨になりました。

  • Cookie クラスを使用するために、Response のクッキー関連のプロパティは非推奨になりました。

  • Cookie クラスを使用するために、Security のクッキー関連のプロパティは非推奨になりました。

  • Cookie クラスを使用するために、Session のクッキー関連のプロパティは非推奨になりました。

  • Cookie の内部有効期限ステータスを使用するために、非推奨の Security::isExpired()

  • DatabaseTestTrait を代わりに使用するために、非推奨の CIDatabaseTestCase

  • FeatureTestTrait を代わりに使用するために、非推奨の FeatureTestCase

  • ControllerTestTrait を代わりに使用するために、非推奨の ControllerTester

  • TestResponse を代わりに使用するために、統合され、非推奨となった ControllerResponse および FeatureResponse

  • 非推奨の Time::instance()。代わりに Time::createFromInstance() を使用します(DateTimeInterface を受け入れるようになりました)。

  • 非推奨の IncomingRequest::removeRelativeDirectory()。代わりに URI::removeDotSegments() を使用します。

  • 非推奨の \API\ResponseTrait::failValidationError。代わりに \API\ResponseTrait::failValidationErrors を使用します。

バグ修正

  • BaseConnection::query() は、失敗したクエリに対して false を返すようになりました(DBDebug==true の場合は例外がスローされます)。ドキュメントで指定されているように、書き込みタイプのクエリに対してはブール値を返します。

修正されたバグの完全なリストについては、リポジトリの CHANGELOG_4.1.md を参照してください。