バージョン 4.1.5

リリース日: 2021年11月8日

CodeIgniter4 の 4.1.5 リリース

破壊的変更

  • CSRF 保護のバグ (a bug) を修正しました。CSRF フィルターが適用されている場合、CSRF 保護は PUT/PATCH/DELETE リクエストで機能するようになりました。このようなリクエストを使用する場合は、CSRF トークンを送信する必要があります。

  • 以前のバージョンでは、独自のヘッダーを提供しなかった場合、`CURLRequest` はバグによりブラウザーからリクエストヘッダーを送信していました。このバージョンでは、送信されなくなりました。

  • `testMode` の `BaseBuilder::insertBatch()` 戻り値を修正しました。影響を受けた行数ではなく、SQL 文字列配列を返すようになりました。この変更は、バッチメソッドの戻り値の型の互換性を維持するために行われました。現在、`BaseBuilder::insertBatch()` の戻り値のデータ型は `updateBatch()` メソッドと同じです。

  • `BaseBuilder::insertBatch()` および `BaseBuilder::updateBatch()` メソッドでのデータ処理方法に大幅な最適化が行われました。これにより、メモリ使用量が削減され、クエリ処理が高速化されました。トレードオフとして、`$query->getOriginalQuery()` メソッドによって生成される結果が変更されました。バインドされたパラメーターを持つクエリは返されなくなり、実際に実行されたクエリが返されるようになりました。

機能強化

  • 予約文字のキャッシュ設定を追加しました

  • `Forge` クラスの addForeignKey() 関数は、配列で複合外部キーを定義できるようになりました

  • `Forge` クラスの `dropKey` 関数はキーを削除できます

  • 環境変数の区切り文字として `_` を使用できるようになりました。名前空間区切り文字 を参照してください。

  • ルートとクラス名フィルターに複数のフィルターを追加しました

  • `insertBatch()` と `updateBatch()` のメモリ使用量を削減しました

  • セッションベースの CSRF 保護 を追加しました

  • `Validation` に `valid_url_strict` ルールを追加しました

  • デバッグツールバー
    • フォーマットされたクエリ文字列をタイムラインに追加しました

    • クエリ文字列のキーワードの強調表示とエスケープを改善しました

変更

  • `BaseBuilder` の `set`、`setUpdateBatch`、`insertBatch` 関数では、常に識別子をエスケープします。

非推奨

  • 新しい設定プロパティを支持して、`CodeIgniter\\Cache\\Handlers\\BaseHandler::RESERVED_CHARACTERS` は非推奨になりました

バグ修正

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