バージョン 4.0.5
リリース日: 2021年1月31日
CodeIgniter4 の 4.0.5 リリース
機能強化
コントローラーに基づいて絶対 URL を作成する新しい URL ヘルパー関数
url_to()
。新しい Model オプション:
$useAutoIncrement
。これをfalse
に設定すると、テーブルの各レコードに独自のプライマリキーを指定できます。1:1 の関係を実装したり、モデルに UUID を使用したりする場合に便利です。現在の URL が指定された文字列と一致するかどうかを確認できる新しい URL ヘルパー関数
url_is()
。サービスの構成パラメータは厳密に型指定されるようになりました。これにより、誰も異なる構成インスタンスを渡すことがなくなります。追加のプロパティを持つ新しい構成を渡す必要がある場合は、特定の構成を拡張する必要があります。
セッションおよび CSRF クッキーに SameSite 属性を設定するためのサポートが追加されました。セキュリティと最新のブラウザバージョンとの互換性のために、デフォルト設定は
Lax
です。Config\Mimes::guessExtensionFromType()
での MIME タイプからのファイル拡張子の推測は、拡張子が提案されていない場合 (つまり、通常はアップロードされたファイルではない場合) のみ、$mimes
配列を逆方向に検索するようになりました。アップロードされたファイルのファイル拡張子のゲッター関数は、異なるフォールバック値を持つようになりました (
UploadedFile::getExtension()
用のUploadedFile::getClientExtension()
、およびUploadedFile::guessExtension()
用の''
)。これはセキュリティ修正であり、プロセスをクライアントへの依存度を低くします。Cache
FileHandler
で、Config\Cache
を介してファイル権限モードを設定できるようになりました。
変更点
system/Language/en/ で定義されたシステムメッセージは、内部フレームワークでの使用のみを目的とし、後方互換性 (BC) の約束の対象外となりました。ユーザーはアプリケーションでこれらのメッセージを使用できますが、自己責任となります。
非推奨
BaseCommand::getPad()
は非推奨となり、BaseCommand::setPad()
が推奨されます。CodeIgniter\Controller::loadHelpers()
は非推奨となり、helper()
関数が推奨されます。Config\Format::getFormatter()
は非推奨となり、CodeIgniter\Format\Format::getFormatter()
が推奨されます。CodeIgniter\Security\Security::CSRFVerify()
は非推奨となり、CodeIgniter\Security\Security::verify()
が推奨されます。CodeIgniter\Security\Security::getCSRFHash()
は非推奨となり、CodeIgniter\Security\Security::getHash()
が推奨されます。CodeIgniter\Security\Security::getCSRTokenName()
は非推奨となり、CodeIgniter\Security\Security::getTokenName()
が推奨されます。Config\App::$CSRFTokenName
は非推奨となり、Config\Security::$tokenName
が推奨されます。Config\App::$CSRFHeaderName
は非推奨となり、Config\Security::$headerName
が推奨されます。Config\App::$CSRFCookieName
は非推奨となり、Config\Security::$cookieName
が推奨されます。Config\App::$CSRFExpire
は非推奨となり、Config\Security::$expire
が推奨されます。Config\App::$CSRFRegenerate
は非推奨となり、Config\Security::$regenerate
が推奨されます。Config\App::$CSRFRedirect
は非推奨となり、Config\Security::$redirect
が推奨されます。Config\App::$CSRFSameSite
は非推奨となり、Config\Security::$samesite
が推奨されます。migrate:create
コマンドは非推奨となり、make:migration
コマンドが推奨されます。CodeIgniter\Database\ModelFactory
は非推奨となり、CodeIgniter\Config\Factories::models()
が推奨されます。CodeIgniter\Config\Config
は非推奨となり、CodeIgniter\Config\Factories::config()
が推奨されます。CodeIgniter\HTTP\Message::getHeader()
は非推奨となり、PSR-7 に対応するためにheader()
が推奨されます。CodeIgniter\HTTP\Message::getHeaders()
は非推奨となり、PSR-7 に対応するためにheaders()
が推奨されます。Config\Cache::$storePath
は非推奨となり、Config\Cache::$file['storePath']
が推奨されます。
バグ修正
クラスパラメータを宣言すると、データが
attributes
配列に伝播されなくなるというEntity
クラスのバグを修正しました。環境変数
encryption.key
の扱いが変更されました。以前は、getenv('encryption.key')
やenv('encryption.key')
のように明示的な関数呼び出しで、値に特別なプレフィックスhex2bin:
が付いている場合、自動的に変換されたバイナリ文字列が返されていました。これが、プレフィックス付きの文字列をそのまま返すように変更されました。この変更は、Windowsプラットフォームでの環境変数におけるバイナリ文字列の扱いとの非互換性によるものです。ただし、Encryption
クラスの設定を使用した場合の$key
へのアクセスは変更されておらず、引き続きバイナリ文字列が返されます。Config\Services
(app/Config/Services.php 内) は、サードパーティのサービスの適切な検出を可能にするために、CodeIgniter\Config\BaseService
を継承するようになりました。
修正されたバグの完全なリストについては、リポジトリの CHANGELOG_4.0.md を参照してください。