元記事はこちら。
今回のリリースにはCakePHPのパフォーマンス・セキュリティ・簡便性の改善など、幾つかの新しい機能が含まれています。
変更点の概要は以下のとおりです:
定数
- CACHEとLOGSを簡単に定義できるようになり、条件付きの定義も可能になった。
キャッシュ
- FileEngineが常にデフォルトのキャッシュエンジン。過去に、多くの人々がAPCをコマンドライン・インターフェース/Webの両方にセットアップ・配備するのに困難を感じていた。新しいデベロッパにとって、ファイルの使用はCakePHPのセットアップがより簡単に感じるでしょう。
コンポーネント
AuthComponent
- 新しい証明アダプタが追加され、blowfish/bcryptハッシュのパスワードがサポートされます。$authenticate 配列内で Blowfish を利用し、bcryptパスワードが使用できるようになります。
- 不正アクセス攻撃を受けた場合にリダイレクトの代わりに例外をスローするようになった。AuthComponentの新しいオプションで制御できる。ステートレスの認証をブロックしたい場合に便利。
PaginatorComponent
- PaginatorComponentがfindTypeオプションをサポート。ページネーションでどのfindメソッドを使用していたかを特定するのに使用できる。0番目のインデックスを管理・セットするよりは簡単。
SecurityComponent
- SecurityComponentがunlockedActionsオプションをサポート。オプション内に列挙されたアクションですべてのセキュリティチェックを使用不可にすることができる。
RequestHandlerComponent
RequestHandlerComponent::viewClassMap()
を追加。ビュークラス名とコンテントタイプをマッピングするのに使用される。$settings['viewClassMap']
を追加すれば、拡張子/コンテントタイプに基づいて正しいviewClassを自動的に設定できるようになる
CookieComponent
CookieComponent::check()
の追加。CakeSession::check()
と同じように動作する。
コンソール
- サーバーシェルの追加。PHP5.4以降のWebサーバーで利用開始できる。
- Bakeで新規プロジェクト作成時にアプリケーション毎のキャッシュのプリフィクスをセットするようになった。
- app/Console/cakeに
symlink
を追加。
I18n(国際化)
- ISO 639-3の仕様通り、オランダ語のロケールのデフォルトはnldとなり、dutは別名となった。ロケールフォルダを適切に調整する必要がある(/Locale/dut/ から /Locale/nld/ へ)。
- アルバニア語:sqi、バスク語:eus、中国語:zho、チベット語:bod、チェコ語:ces、現代ペルシャ語:fas、フランス語:fra、アイスランド語:isl、マケドニア語:mkd、マレーシア語:msa、ルーマニア語:ron、セルビア語:srp、スロバキア語:slk。対応するロケールフォルダを適切に調整する必要がある。
- バリデーションルールのいくつかの内部の文字列のドメイン変換の扱いを修正。
- すべての翻訳関数が、最初に定義したものでオーバーライドできるようになった
設定
Configure::check()
の追加。CakeSession::check()
と同じように動作する。
Exceptions(例外)
- CakeBaseExceptionの追加。すべての重要な例外が拡張された。
- ベースの例外クラスに
responseHeader()
メソッドの導入。生成された例外インスタンスに応答用のヘッダを追加することで、例外の応答がインスタンスを再利用できないようにする。
モデル
- 主要なデータソースやフィクスチャでbiginteger型をサポート
- MySQLドライバで、FULLTEXTインデックスのサポートを追加
find('list')
がContainableBehaviorと併用される場合に、Model::find('list')
で、最大格納深度もしくはrecursive値をもとにrecursiveの値をセットするようになった。DboSource::resetSequence()
の追加。データソースがテーブルのシーケンス値をリセットできるようになった。Postgresなどのデータソースで便利であり、フィクスチャの使用がより簡単になった。DboSource::getLog()
が最初の200クエリではなく最後の200クエリを取得するようになった。
バリデーション
- バリデーションメソッドがない場合は、開発モード以外でもエラーを発生させるようになった。
CakeNumber::fromReadableSize()
とValidation::filesize()
の追加。
ネットワーク
- CakeSocketクラスに
enableCrypto()
メソッドを追加。 - SMTPコネクションでTLS/SSLのサポートを追加。
CakeRequest
CakeRequest::onlyAllow()
の追加。CakeRequest::query()
の追加。ドット記法のクエリ文字列で変数にアクセスするため。
CakeResponse
CakeResponse::file()
の追加。MediaViewは推奨されない。- CakeResponseの実体化の際、デフォルトでキャラクタセットを
App.encoding
の値でセットされるようになった。
CakeEmail
CakeEmail::attachments()
で、contentDispositionオプションの追加。添付ファイルに対してContent-Dispositionヘッダを追加しなくてもよくなった。
ルーティング
Router::url()
に、tel: と sms: のサポートを追加。- routeClassパラメータをプラグインに渡す際にドット記法を使用可。
- 遅延ローディングになった。結果、コマンドラインインターフェースでもルーティングが機能するようになった。
ビュー
- MediaViewは非推奨になった。同じ結果を得るためにCakeResponseの新機能が利用できる。
- JsonとXMLのビューのシリアライズが
_serialize()
に移行した。 - ビューのテンプレート使用時に、JsonとXMLのビューで
beforeRender
とafterRender
のコールバックが呼ばれるようになった。 View::fetch()
は$default値を渡すようになった。デフォルト値を渡す場合に使用する。View::prepend()
の追加。既存のブロックにコンテンツを追加できるようになった。
ヘルパー
FormHelper
FormHelper::select()
で、属性が使用不可でもリスト値を受け付けるようになった。'multiple' => 'checkbox'
と組み合わせる場合、使用不可にしたいリスト値を渡せるようになった。FormHelper::postLink()
がメソッドキーを受け付けるようになった。これにより、HTTPメソッドでPOST以外のリンクフォームを作成できるようになった。- 複数のチェックボックスで使用不可の属性を受け付けるように修正。
- hiddenblockテンプレートの
HtmlHelper::$tags
プロパティを使用して、FormHelperか生成するHiddenブロックをカスタマイズできるようになった。 - required(必須)フィールドの検出を改善。
TextHelper
TextHelper::tail()
の追加。テキストの切り詰めを行える。TextHelper::truncate()
のオプションは省略記号のために非推奨になった。
PaginatorHelper
PaginatorHelper::numbers()
で、新しいオプションcurrentTagにより、現在のページ番号をラップするために追加のタグを指定できるようになった。
CakeNumber
CakeNumber::fromReadableSize()
の追加。CakeNumber::formatDelta()
の追加。CakeNumber::defaultCurrency()
の追加。
フォルダ
Folder::copy()
とFolder::move()
が、元・先のディレクトリでスキップ/上書きのほかにマージをサポートするようになった。
String
String::tail()
の追加。テキストの切り詰めを行える。TextHelper::truncate()
のオプションは省略記号のために非推奨になった。
デバッガ
Debugger::exportVar()
がPHP5.3.0以降でprivateもしくはprotectedのプロパティを出力するようになった。
セキュリティ
- bcryptのサポートを追加。bcryptの使い方については
Security::hash()
のドキュメントを参照。
コミット、チケット、ドキュメントの編集ほか、このフレームワークに貢献してくれるすべての皆さんに深謝します。あなたがいなければCakePHPは存在しません。
リンク
訳注:
誤りを発見された場合はTwitterにてお知らせください。
Tweet to @cakephpusersjp