CakePHP 2.3.7 と 2.4.0-beta がリリースされました

元記事はこちら

by markstory

CakePHPコアチームは CakePHP2.3.7 と 2.4.0-beta が入手可能になったことをお知らせいたします。2.3.7は2.3系のバグフィックスリリースであり、2.4.0-beta は2.4系の最初のリリースとなります。


CakePHPコアチームは CakePHP2.3.7 と 2.4.0-beta[1] が入手可能になったことをお知らせいたします。2.3.7は2.3系のバグフィックスリリースであり、2.4.0-beta は2.4系の最初のリリースとなります。
2.3.7の変更点の概要は以下のとおりです:

  • キャッシュされたビューはContent-Typeヘッダを含むようになった。アップグレード時にビューキャッシュを一掃することをおすすめします
  • SMTP経由で送信されたemailで、Return-Pathが含まれなくなった
  • レコードの保存時に自動で記録される作成日・更新日(フィールド)の時刻が一致するようになった。まれに1秒の誤差が生じることがあった
  • 定数IIS_SERVERに関する、ドキュメントに無く、テストされていない機能が削除された
  • FormHelper::dateTime() で、maxYearが現在の年より早い(小さい)場合に正しい年を選択するようになった
  • Eメールビューでバウンダリの計算がレンダリングプロセスの後半で行われるように修正された。ビューのコールバックにインラインイメージやファイルを添付できるが、(以前は)誤ったバウンダリ識別子が生成されていた。
  • AuthComponentはアプリケーションのベースパスがコントローラ名と一致する場合に正しいリダイレクトURLを生成するようになった
  • ‘index.php’を含むリクエストで生成されたエラーは正しく描画されるようになった
  • ‘..’を含むクラス名はリジェクトされるようになった

本リリースには、アプリケーション外のコントローラが特定の条件下でロード可能になってしまう件に関するセキュリティフィックスが含まれています。PHPファイルのアップロードを許可し、ユーザデータを使用して最終的にファイル名を決定するアプリケーションにおいては重要なアップグレードになります。この状況で、攻撃者がPHPファイルをアップロードすると、外部からコードを実行できてしまいます。この件に関して報告し、再現手順を提供していただいたAdrian Ulrich氏に深謝します。

2.4.0-beta

2.4.0-beta リリースにはCakePHPのパフォーマンス、セキュリティ、使い勝手の改善に関するいくつかの新機能が含まれています。この新バージョンはやがて2.3系に代わるものとなります。移行ガイドはbook[2](英語)で提供されますので、旧バージョンからのアップグレード時にはぜひお読みください。

訳注:日本語はこちらと思われます。この記事の翻訳時点ではまだ作成されていないため、404 not foundになります。

現時点の2.4.0での新機能と変更点は以下のとおりです:

コンソール

  • カラーサポートのあるターミナルで、ログされたnoticeメッセージがカラー表示されるようになった

スキーマシェル

  • cake schema generate --exclude パラメータをサポートするようになった

Bakeシェル

  • cake bake model $behaviors をサポートするようになった。たとえば、テーブル中でlft rght parent_id の各フィールドが検知された場合はTreeビヘイビアが追加されるようになります。ModelTaskを拡張して、独自のビヘイビアを検知できるようにすることもできます。

FixtureTask

  • cake bake fixture --schema パラメータをサポートするようになり、スキーマインポートを使用している場合、非会話的な”all”を指定してすべてのフィクスチャをbakeできるようになった

オブジェクト

  • Object::log() $scope パラメータが追加された

コンポーネント

AuthComponent

  • Basic もしくは Digest 認証時にAuthComponentは適切なステートレスモードをサポートするようになった。AuthComponent::$sessionKey をfalseに設定すると、セッションが開始されない。Basic もしくは Digest だけを使用している場合、ログインページにリダイレクトされることはなくなった。詳細はAuthComponent のページを参照。
  • AuthComponent::$authError プロパティにブール値false を設定してメッセージの表示を抑制できるようになった

PasswordHasher

  • 認証オブジェクトはパスワードハッシュの生成とチェックに新しいPasswordHasherオブジェクトを使用するようになった

モデル

  • Model::save() Model::saveField() Model::saveAll() Model::saveAssociated() Model::saveMany() は新しくcounterCache オプションをとるようになった。特定のsave操作でfalseに設定すると、カウンタキャッシュ値を更新しなくなる。
  • Model::clear() の追加

データソース

  • Mysql、Postgres、SQLserver の接続定義時に ‘settings’ 配列をサポートするようになった。コネクションの作成時に キー => バリューの組みがSET コマンドにて発行される

ビュー

JsonView

  • :php:class: JsonView にJSONPのサポートの追加

HtmlHelper

  • HtmlHelper::css() のAPIの変更
  • escapeTitle オプションが追加され、HtmlHelper::link() がリンクタイトルのみエスケープし、属性はエスケープされないようになった

TextHelper

  • TextHelper::autoParagraph() の追加。テキストを自動的にHTMLパラグラフに変換する

PaginatorHelper

  • PaginatorHelper::param() の追加

ネットワーク

CakeRequest

  • CakeRequest::param() の追加
  • CakeRequest::is() の変更。配列タイプをサポートし、どれかにマッチした場合はtrueを返す
  • CakeRequest::isAll() の追加。リクエストが与えられたすべてのタイプにマッチするかチェックする

CakeEmail

  • ログされるメールメッセージはデフォルトでemail スコープを保持。ログ内にメール本文が表示されない場合、ログ設定にemail スコープが追加されていることを確認する

HttpSocket

  • HttpSocket::patch() の追加

ローカライゼーション

  • ISO 639-3 に準拠し ell がギリシャ語のデフォルトロケールになり、gre がエイリアスとなった。ロケールフォルダの調整が必要(/Locale/gre/ から/Locale/ell/ へ)
  • ISO 639-3 に準拠し fas がペルシャ語のデフォルトロケールになり、per がエイリアスとなった。ロケールフォルダの調整が必要(/Locale/per/ から/Locale/fas/ へ)
  • ISO 639-3 に準拠し sme がサーミ語のデフォルトロケールになり、smi がエイリアスとなった。ロケールフォルダの調整が必要(/Locale/smi/ から/Locale/sme/ へ)
  • ISO 639-3 に準拠し マケドニア語のデフォルトロケールはmkd からmk に置き換えられた。ロケールフォルダの調整が必要
  • カタログコードの調整。in を削除しid を採用(インドネシア語)、を削除しel を採用(ギリシャ語)、を削除しnl を採用(オランダ語)、を削除しpl を採用(ポーランド語)、sz を削除しse を採用(サーミ語)
  • カザフ語の追加。ロケールはkaz 、カタログコードはkk 
  • グリーンランド語の追加。ロケールはkal 、カタログコードはkl 

ロギング

  • ログエンジンはセットアップ設定中で接尾辞Log を使用しなくてよくなった。FileLogエンジン用に'engine' => 'File' を定義すれば十分である。これにより設定内のエンジン名が統一される(キャッシュエンジンの例を参照)
    注記:DatabaseLogger のような、接尾辞Log を使用するという規約に影響されないログエンジンの場合、クラス名をDatabaseLog に変更する必要がある。さらに、SomeLogLog のように、接尾辞を二回繰り返すこともしない。

FileLog

  • FileLog エンジン用にsize と rotate の2つのオプションの追加

SyslogLog

  • メッセージをsyslogにながす新しいロギングエンジンSyslogLog の追加。

ユーティリティ

  • コマンドラインモードでpr はHTMLを出力しなくなった

バリデーション

  • Validation::date() や ym の書式をサポート
  • Validation::phone() で、ISO 3166(2文字コード)に準拠し、バリデーションメソッド内の国コードの統一のため、カナダの国コードをcan から ca に変更。

CakeNumber

  • 通貨AUD CAD JPY の追加
  • GBP EUR のシンボルがUTF-8になった。UTF-8でないアプリケーションをアップグレードする場合は、それらの通貨を使用する前にスタティック属性$_currencies を適切なHTMLエンティティシンボルに更新すること

CakeTime

  • CakeTime::isPast() CakeTime::isFuture() の追加

Xml

  • Xml::fromArray() に、きちんとフォーマットされたXMLを返す新しいオプションpretty の追加。

エラー

ErrorHandler

  • 新しい設定オプションskipLog の追加。特定の例外タイプのログ出力をスキップできるようになった。Configure::write('Exception.skipLog', array('NotFoundException', 'ForbiddenException'));  は、これらの例外のログ出力をスキップしたり、'Exception.log' 設定をtrueにすることで拡張したりできる

ルーティング

Router

  • Router::baseUrl() の追加。非推奨になったFULL_BASE_URL を置き換える

APIドキュメントとcookbookは2.4.0の変更点・改良点を反映し更新されています。

コミット、チケット、ドキュメントの編集ほか、このフレームワークに貢献してくれるすべての皆さんに深謝します。あなたがいなければCakePHPは存在しません。

パッケージリリースのダウンロード

リンク

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です