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テンプレート変数が追加されました。このテンプレートキーは、 ラジオまたはチェックボックスが選択されているときに使用されるクラス名を制御します。