CakePHP 2.4 は、2.3 の API の完全上位互換です。 このページでは、2.4 の変更と改善についてのアウトラインを紹介します。
cake schema generate
は --exclude
パラメータをサポートしました。CAKEPHP_SHELL
定数は非推奨となりました。CakePHP 3.0 で廃止されます。cake bake model
は $behaviors
をサポートしました。
例えば、Tree ビヘイビアを追加した場合、テーブルから lft や rght 、
parent_id のフィールドを探します。
また、独自のビヘイビアをサポートするために ModelTask を拡張することができます。cake bake
において、
ファイルを強制的に上書きする -f
もしくは --force
パラメータがサポートされました。cake bake fixture
に --schema
パラメータがサポートされました。
スキーマのインポートする場合に、非対話型の 「all」 で全てのフィクスチャを bake することを許可します。IMAGES_URL
、 JS_URL
、 CSS_URL
の各定数は非推奨となり、
App.imageBaseUrl
、 App.jsBaseUrl
、 App.cssBaseUrl
のコンフィグ変数の利用が推奨されます。IMAGES
、 JS
、 CSS
の各定数は非推奨となりました。Object::log()
に $scope
パラメータが追加されました。AuthComponent::$sessionKey
を false にすることで、
セッションの開始を抑制することができます。
『Basic』 もしくは 『Digest』 認証のみを使った場合、
ログインページに飛ばされることはなくなりました。
更に詳しい情報は AuthComponent
ページを参照して下さい。AuthComponent::$authError
プロパティを false
にすることで、
フラッシュメッセージを抑制することができます。LEFT
ジョインではなく INNER
ジョインを使用するようになりました。
これによりいくつかのデータベースでのパフォーマンスが向上します。Model::save()
、 Model::saveField()
、 Model::saveAll()
、
Model::saveAssociated()
、 Model::saveMany()
は
新しく counterCache
オプションを持つようになりました。
この値を false にセットすることで特定の保存時にカウンタキャッシュの更新を抑制できます。Model::clear()
が追加されました。SET
コマンドとして発行されます。JsonView
に JSONP サポートが追加されました。_serialize
キーは、シリアライズ値の改名をサポートしました。_serialize
キーは、シリアライズ値の改名をサポートしました。HtmlHelper::css()
用の API が簡素化されました。
2番めの引数として、オプションの配列を渡すことができます。
オプション配列を渡した場合に rel
アトリビュートのデフォルトは
『stylesheet』 となります。HtmlHelper::link()
に新しく escapeTitle
オプションが追加されました。
エスケープ処理をリンクのタイトルだけにし、アトリビュートには影響を及ぼさないための
オプションです。TextHelper::autoParagraph()
が追加されました。
自動的に HTML の p タグを付与した形に変換します。PaginatorHelper::param()
が追加されました。/page:1
や ?page=1
が含まれなくなりました。
これは正規化や noindex 等の処置が必要になっていた複製コンテンツ問題に役立ちます。FormHelper::dateTime()
に round
オプションが追加されました。
up
もしくは down
をセットすることで、指定した方向に丸め処理が行われます。
デフォルトは null で、 interval
に従って四捨五入します。CakeRequest::param()
が追加されました。CakeRequest::is()
はタイプの配列をサポートし、そのタイプにマッチしていた場合は
true を返すように変更されました。CakeRequest::isAll()
が追加されました。CakeResponse::location()
が追加されました。email
スコープをデフォルトで持つようになりました。
もし、ログに email のコンテンツを含めたくなければ、ログの設定に email
のスコープを追加して下さい。CakeEmail::emailPattern()
が追加されました。
このメソッドは、緩いバリデーションルールの利用を許可します。
これは、規格に合っていないアドレスを利用している特定の日本のホストにおいて有用です。CakeEmail::attachments()
の data
キーで、直接添付ファイルの
コンテンツを指定することができるようになりました。HttpSocket::patch()
が追加されました。ell
になりました。
gre
はそのエイリアスです。これに伴いロケールのフォルダが変更となりました。
( /Locale/gre/ から /Locale/ell/ へ)fas
になりました。
per
はそのエイリアスです。これに伴いロケールのフォルダが変更となりました。
( /Locale/per/ から /Locale/fas/ へ)sme
になりました。
smi
はそのエイリアスです。これに伴いロケールのフォルダが変更となりました。
( /Locale/smi/ から /Locale/sme/ へ)mkd
になりました。
mk
はそのエイリアスです。これに伴い同様にロケールのフォルダが変更となりました。in
は削除され id
になりました(インドネシア語)、
e
は削除され el
になりました(ギリシア語)、
n
は削除され nl
になりました(オランダ語)、
p
は削除され pl
になりました(ポーランド語)、
sz
は削除され se
になりました(サーミ語)。kaz
、カタログコード kk
で追加されました。kal
、カタログコード kl
で追加されました。DEFAULT_LANGUAGE
は非推奨となり、代わりにコンフィグの Config.language
を利用して下さい。Log
サフィックスは不要になりました。
FileLog エンジンを利用するには 'engine' => 'File'
と定義して下さい。
これはコンフィグでエンジンを指定する方法を統一します(例えばキャッシュエンジンを見て下さい)
注意: 例えばログエンジンとして DatabaseLogger
のように Log
サフィックスが
付いていない名称を使っていた場合は、 DatabaseLog
のようにクラス名を変更して下さい。
また、末尾に2回もサフィックスが付くような SomeLogLog
という名称も避けるべきです。Sanitize
クラスは非推奨となりました。Validation::date()
が y
と ym
のフォーマットをサポートしました。Validation::phone()
の国コードが ISO 3166(2文字コード)に統一させるために
can
から ca
へ変更されました。AUD
と CAD
と JPY
が追加されました。GBP
と EUR
のシンボルは UTF-8 になりました。
UTF-8 でないアプリケーションをアップグレードする場合、HTMLエンティティのシンボル
( £
と €
)を利用して $_currencies
アトリビュートを
アップデートしてください。CakeNumber::currency()
に fractionExponent
オプションが追加されました。CakeTime::isPast()
と CakeTime::isFuture()
が追加されました。CakeTime::timeAgoInWords()
に出力文字列をカスタマイズする2つの
新しいオプションが追加されました。
relativeString
(デフォルト %s ago
)と absoluteString
(デフォルト on %s
)Xml::fromArray()
にうまくフォーマットされた XML を出力する
pretty
オプションが新たに追加されました。skipLog
が追加されました。
Configure::write('Exception.skipLog', array('NotFoundException', 'ForbiddenException'));
は、
'Exception.log'
が true
の場合にこれらの例外を除外してロギングします。Router::fullBaseUrl()
がコンフィグ値 App.fullBaseUrl
と共に追加されました。
これらは非推奨となった FULL_BASE_URL
の代わりに利用します。Router::parse()
はクエリストリング引数をパースします。