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.phpError.extraFatalErrorMemory0 にします。

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’) が実装されている場合、マジックメソッドインターフェースによって findPublishedByfindPublishedByAuthorId が使用できます。

  • find の検索条件に INNOT IN 演算子が使用できるようになりました。 これは、3.x との前方互換性のより高い find の表現が可能になります。

Validation

  • Validation::uploadedFile() が 3.x からバックポートされました。

CakeSession

  • Session.cacheLimiter 設定オプションが追加されました。このオプションは、 セッションクッキーで使用するキャッシュ制御ヘッダーを定義します。デフォルトは、 must-revalidate です。

ビュー

FormHelper

HTML の action 属性なしで form タグを作成できるように、 FormHelper::create()'url' => false がサポートされました。 これは、3.x からのバックポートです。