4.0.4 から 4.0.5 へのアップグレード

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

破壊的な変更を含む機能強化

Message::getHeader(s)

HTTP レイヤーは、PSR-7 準拠 に向けて移行しています。このため、Message::getHeader() および Message::getHeaders() は非推奨となり、それぞれ Message::header() および Message::headers() に置き換える必要があります。これは、Message を拡張するすべてのクラスにも関係することに注意してください。RequestResponse、およびそれらのサブクラスです。

HTTP レイヤーからのその他の関連する非推奨

  • Message::isJSON():「Content-Type」ヘッダーを直接確認してください

  • Request[Interface]::isValidIP()valid_ip を使用して Validation クラスを使用してください

  • Request[Interface]::getMethod()$upper パラメーターは削除され、strtoupper() を使用してください

  • Request[Trait]::$ipAddress:このプロパティはプライベートになります

  • Request::$proxyIPs:このプロパティは削除されます。config('App')->proxyIPs に直接アクセスしてください

  • Request::__construct():コンストラクターは Config\App を受け取らなくなり、移行を支援するために null 許容になりました

  • Response[Interface]::getReason():代わりに getReasonPhrase() を使用してください

  • Response[Interface]::getStatusCode():明示的な int 戻り値の型は削除されます(アクションは不要です)

ResponseInterface

このインターフェースは、フレームワーク互換のレスポンスクラスに必要なメソッドを含めることを目的としています。フレームワークで想定されるメソッドがいくつか不足していたため、追加されました。ResponseInterface を直接実装するクラスを使用する場合は、更新された要件と互換性がある必要があります。これらのメソッドは次のとおりです

  • setLastModified($date)

  • setLink(PagerInterface $pager)

  • setJSON($body, bool $unencoded = false)

  • getJSON()

  • setXML($body)

  • getXML()

  • send()

  • sendHeaders()

  • sendBody()

  • setCookie($name, $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = false, $httponly = false, $samesite = null)

  • hasCookie(string $name, string $value = null, string $prefix = ''): bool

  • getCookie(string $name = null, string $prefix = '')

  • deleteCookie(string $name = '', string $domain = '', string $path = '/', string $prefix = '')

  • getCookies()

  • redirect(string $uri, string $method = 'auto', int $code = null)

  • download(string $filename = '', $data = '', bool $setMime = false)

このインターフェースの使用を容易にするために、これらのメソッドはフレームワークの Response から使用可能な ResponseTrait に移動され、DownloadResponse は最大限の互換性を確保するために Response を直接拡張するようになりました。

Config\Services

サービス検出が更新され、サードパーティサービス(モジュール経由で有効になっている場合)がコ サービスよりも優先されるようになりました。サードパーティサービスの適切な検出を可能にするために、app/Config/Services.php を更新して、クラスが CodeIgniter\Config\BaseService を拡張するようにしてください。

プロジェクトファイル

プロジェクトスペース(ルート、アプリ、パブリック、書き込み可能)の多数のファイルが更新されました。これらのファイルはシステムスコープ外にあるため、介入なしに変更されることはありません。プロジェクトスペースへの変更のマージを支援するサードパーティの CodeIgniter モジュールがいくつかあります:Packagist で検索

注意

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

コンテンツの変更

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

  • app/Views/*

  • public/index.php

  • public/.htaccess

  • spark

  • phpunit.xml.dist

  • composer.json

すべての変更

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

  • LICENSE

  • README.md

  • app/Config/App.php

  • app/Config/Autoload.php

  • app/Config/Boot/development.php

  • app/Config/Boot/production.php

  • app/Config/Boot/testing.php

  • app/Config/Cache.php

  • app/Config/Constants.php

  • app/Config/ContentSecurityPolicy.php

  • app/Config/Database.php

  • app/Config/DocTypes.php

  • app/Config/Email.php

  • app/Config/Encryption.php

  • app/Config/Events.php

  • app/Config/Exceptions.php

  • app/Config/Filters.php

  • app/Config/ForeignCharacters.php

  • app/Config/Format.php

  • app/Config/Generators.php

  • app/Config/Honeypot.php

  • app/Config/Images.php

  • app/Config/Kint.php

  • app/Config/Logger.php

  • app/Config/Migrations.php

  • app/Config/Mimes.php

  • app/Config/Modules.php

  • app/Config/Pager.php

  • app/Config/Paths.php

  • app/Config/Routes.php

  • app/Config/Security.php

  • app/Config/Services.php

  • app/Config/Toolbar.php

  • app/Config/UserAgents.php

  • app/Config/Validation.php

  • app/Config/View.php

  • app/Controllers/BaseController.php

  • app/Controllers/Home.php

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

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

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

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

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

  • composer.json

  • env

  • license.txt

  • phpunit.xml.dist

  • public/.htaccess

  • public/index.php

  • spark