2.8 移行ガイド
CakePHP 2.8 は、2.7 の API の完全上位互換です。 このページでは、2.8 の変更と改善についてのアウトラインを紹介します。
PHP7 互換性
CakePHP 2.8 は、PHP7 互換でテストされています。
非推奨
FormHelper::create()のactionオプションが、非推奨になりました。これは、 3.x からのバックポートです。 配列のactionキーが DOM ID 生成における URL 一貫性を重視したものである点に注意してください。 非推奨のキーを使用した場合、フォームに生成された ID をアップグレード前後で比較してみてください。
エラーハンドリング
- 致命的エラーを扱う際、CakePHP はメモリの上限を 4MB に調整しエラーが確実に記録されるようになりました。 この動作を無効化するには、
Config/core.phpでError.extraFatalErrorMemoryを0にします。
Cache
Cache::add()が追加されました。このメソッドによりキーが存在していない場合でもデータを キャッシュに追加できます。このメソッドは、自動的に Memcached, Memcache, APC, Redis 上で動作します。他のキャッシュでは非アトミックな操作になります。
CakeTime
CakeTime::listTimezones()で、最後の引数が配列を受け付けるように調整されました。$options引数の有効な値は、group,abbr,before,afterです。
Shell ヘルパーの追加
コンソールアプリケーションは、出力ロジックの再利用可能な部分を集約する ヘルパークラスを作成することができるようになりました。詳しくは、 Shell ヘルパー セクションをご覧ください。
I18nShell
- 新しいオプション
no-locationsが追加されました。このオプションを有効化すると、 POT ファイルの位置参照の生成が無効化されます。
Hash
Hash::sort()で、大文字小文字を区別しないignoreCaseオプションの追加しました。
モデル
- マジックメソッドで、カスタム検索タイプがサポートされるようになりました。例えば、モデルで
find(‘published’)が実装されている場合、マジックメソッドインターフェースによってfindPublishedByやfindPublishedByAuthorIdが使用できます。 - find の検索条件に
INとNOT IN演算子が使用できるようになりました。 これは、3.x との前方互換性のより高い find の表現が可能になります。
Validation
Validation::uploadedFile()が 3.x からバックポートされました。
CakeSession
Session.cacheLimiter設定オプションが追加されました。このオプションは、 セッションクッキーで使用するキャッシュ制御ヘッダーを定義します。デフォルトは、must-revalidateです。
ビュー
FormHelper
HTML の action 属性なしで form タグを作成できるように、 FormHelper::create() に 'url' => false がサポートされました。 これは、3.x からのバックポートです。