4.0.4 から 4.0.5 へのアップグレード
インストール方法に応じたアップグレード手順を参照してください。
破壊的な変更を含む機能強化
Message::getHeader(s)
HTTP レイヤーは、PSR-7 準拠 に向けて移行しています。このため、Message::getHeader()
および Message::getHeaders()
は非推奨となり、それぞれ Message::header()
および Message::headers()
に置き換える必要があります。これは、Message
を拡張するすべてのクラスにも関係することに注意してください。Request
、Response
、およびそれらのサブクラスです。
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