バージョン 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
の独自の例外メッセージでは非推奨です。CodeIgniterEntity は CodeIgniterEntityEntity に代わって非推奨になりました。
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 を参照してください。