3.9 移行ガイド
CakePHP 3.9 は 3.8 の API の完全上位互換です。 このページでは、3.8 の変更と改善についてのアウトラインを紹介します。
3.9.x にアップグレードするには、次の Composer コマンドを実行してください。
bash
php composer.phar require --update-with-dependencies "cakephp/cakephp:3.9.*"
非推奨
ConsoleIo::info()
、success()
、warning()
およびerror()
は 4.0 においてmessage
パラメータでnull
値を受け入れるようになりました。- テストケースで
$fixtures
にコンマ区切りの文字列を使用することは非推奨です。 代わりに、配列を使用するか、新しいgetFixtures()
メソッドをテストケースクラスに実装してください。
新機能
Cache
MemcachedEngine::write()
およびadd()
は、期間を30日に制限しなくなりました。 代わりに、すべての有効期限値が memcache に転送されます。
Console
ConsoleIo::abort()
が追加されました。
Database
Driver::newTableSchema()
が追加されました。このフックメソッドを使用すると、 スキーマメタデータに使用するクラスをカスタマイズすることができます。
Datasource
Cake\Datasource\SimplePaginator
が追加されました。このクラスにより、 非常に大きな結果のページ分けがより効率的になります。潜在的に高価なcount()
クエリーの実行をスキップします。ページネーションコントロールで「次へ」と「前へ」の ナビゲーションのみを使用する場合、このクラスは良い解決策になります。
ORM
- エラーの場合に失敗した特定のエンティティーで
PersistenceFailedException
をスローするTable::saveManyOrFail()
メソッドが追加されました。 エンティティーはトランザクション内で保存されます。 Table::deleteMany()
およびTable::deleteManyOrFail()
メソッドが、 コールバックを含む多くのエンティティーを一度に削除するために追加されました。 エンティティーはトランザクション内で削除されます。TableLocator::clear()
は内部のoptions
配列をリセットするようになりました。
TestSuite
TestCase::getFixtures()
が追加されました。このメソッドを使用すると、 必要に応じてアプリケーション固有のロジックを使用してフィクスチャーリストを生成できます。
Utility
Hash::sort()
は、方向パラメーターでSORT_ASC
およびSORT_DESC
定数を 受け入れるようになりました。
Validation
Validator
の 'empty' フィールドの検出では、エラーコードがUPLOAD_ERR_NO_FILE
であるUploadedFileInterface
オブジェクトを空であると見なすようになりました。
View
FormHelper
にselectedClass
テンプレート変数が追加されました。このテンプレートキーは、 ラジオまたはチェックボックスが選択されているときに使用されるクラス名を制御します。