by markstory
3.0.0-アルファ2の新機能
ルーターリフレクターとビルダーベースのAPI
Routerクラスはリファクタリングされ、ルートファイルをこれまで以上にDRYに保てるように新機能が追加されました。改善されたメソッドに加え、受け取ったURLのパースが大幅に改善されました。Routerクラスはルートの不足に厳格になり、URLが解析できない場合や接続されたルートと一致できない場合は例外を介して通知するようになりました。
CakePHPにより提供されていたデフォルトのルートは削除されました。試作段階では便利なものでしたが、これらの設定はコンテンツの重複などの問題を引き起こしましたし、大規模アプリケーションではほとんど使用されていません。その代わりに、アプリケーション開発の試作段階の支援のためにルートの小さいサブセットが提供されます。3.0を使用したアプリケーションがあるなら、routes.phpファイルをアップデートする必要があります。
CacheHelper が削除された
CacheHelperはCakePHPから削除されました。コアチームとしては、CacheHelperが提供する機能はVarnishのようなスタンドアロン・サーバーでは最善だと考えていました。CacheHelperをESIベースのものに置き換えられないか探っていたころ、実装を複雑にする極端なケースがいくつも見つかりました。
ORM の改善
- BelongsTo と HasOne アソシエーションにおいて空のアソシエーションがある場合、空のエンティティを生成しなくなった。アソシエーションのプロパティがnullになる。
- すべてのORM操作のオプションが一貫したものになった
- リクエストからエンティティにデータをマーシャリングするときに、フィールドのホワイトリストを指定できるようになった
- テーブルフックメソッドの _initializeSchema を使用してカスタム列タイプを実装するのが簡単になった
- Query::newExpr() はSQL文を受け付けるようになった
- null可の変数を含む条件で、’field IS’ => $val と簡潔に式を構築する場合、$valがNULLではない場合に正しいSQLを生成するようになった
- 条件式のIN句で、空のデータの取扱が改善された
その他の変更
- HtmlHelper と FormHelper で、$confirmMessage が削除され、confirmオプションに置き換えられた
- Cells のエラーの改善
- コントローラーのプリフィックスで、プリフィックスレイアウトを自動で使用するようになった
- Cookieの遅延読み込み、遅延解読
- SSLルーティングのオプションが _ssl になった
- 特定のメソッドのルーティングオプションが _method になった
- ヘッダベースのルートマッチングが削除された。殆ど使用されていなかったため
- Router::resourceMap() が削除された。新しいRouter::mapResources() のメソッドに対するオプションとして置き換えられた
- Bcrypt ハッシュが Security::hash() から削除された
CakeFest 2014のチケットがまだ入手可能です。CakePHP関連の刺激的なトークやチュートリアル、関連技術などがマドリードで提供されます。チケットはこちら。
3.0.0のすべての変更点については、移行ガイドを参照してください。
3.0へのアイデア、コード、ドキュメント、フィードバックなどで関わる全ての皆さんに感謝します。我々は、すべての早期導入者とそのフィードバックにとても感謝しています。発見され修正された問題を早めに得られることは大きな助けになっています。
「CakePHP 3.0.0-アルファ2がリリースされました」への1件のフィードバック