by markstory
CakePHPコアチームはCakePHP 3.0.0 ベータ3が入手可能になったことをお知らせいたします。ベータリリースは2回と計画していましたが、現状のORMバリデーションの流れに満足できず、追加作業を行うこととしました。新しい計画ではベータ3以降最低2回のRCリリースを予定しています。RCリリースではAPIを凍結し、新機能や大幅な変更は行わないものとします。
CakePHPコアチームはCakePHP 3.0.0 ベータ3が入手可能になったことをお知らせいたします。ベータリリースは2回と計画していましたが、現状のORMバリデーションの流れに満足できず、追加作業を行うこととしました。新しい計画ではベータ3以降最低2回のRCリリースを予定しています。RCリリースではAPIを凍結し、新機能や大幅な変更は行わないものとします。
3.0.0 ベータ2以降、コミュニティのフィードバックや、互換性のない重要な変更作業の完了のために尽力してきました。
3.0.0 ベータ2 以降の大幅な変更
- Bakeテンプレートではテンプレートの事前解析を含むテンプレートメカニズムを使用するようになった。この修正は可読性の向上と新しいBakeテンプレートの作成を容易にするために行われた。これは既存のカスタムテンプレートのアップデートが必要になることを意味する。
- Inflector::slug() で、デフォルトの置き換え文字が「_」から「-」に変更された
- 定数LOG_ERRORとTESTSは使用されなくなり、削除された
- Controller::$actions が削除され、Controller::isAction() に置き換えられた。この新しいメソッドによりコントローラーのアクションがルート可能かどうかをカスタマイズするのが容易になった
- Component::initialize() は他の初期化メソッド同様コンストラクタ後のフックとなった
- コンポーネントは新しくbeforeFilter() イベントリスナを持つようになり、コントローラーのbeforeFilter メソッド実行の前に実行されるようになった
- CakeSession::read() は失敗ケースですべてnullを返すようになった
- requestAction() によって呼ばれたコントローラのアクションはResponseオブジェクトを返さなければならなくなった。ほかの値を返すとエラーになる
- データベース設定は login キーを受け付けなくなった。usernameを使用すること。フレームワーク内の一貫性の向上のために変更された
- チェックボックスとラジオボタンの入力でラベル要素の子にネストされるようになった。いくつかのポピュラーなCSSライブラリに合わせるため改善された。FormHelperが使うテンプレートをカスタマイズしたなら、テンプレートをアップデートする必要がある
- Cake\View\Error\MissingViewException は Cake\View\Error\MissingTemplateException に変更された。MissingView はビュークラスが存在しない場合に使用するため
- logout() を実装しているAuthenticationオブジェクトは新しいAuth.logoutイベントを使うように変更が必要
- 設定値 App.www_root は一貫性の向上のために App.wwwRoot に改名された
3.0.0 ベータ2 以降の新機能
- Cake\Cache\EngineFileEngine はデバッグがオフの時にディレクトリを生成するようになった
- CakePHP から幾つかの新しい独立したライブラリが抽出されている。Cache、Log、Utilityパッケージはcomposerを使用してそれぞれインストールできるようになっている。
- コンソールやテストケースでの作業に便利なように、pj() (print json) ヘルパーメソッドが追加されている
- Model.initialize イベントが追加された。このイベントはプラグインやその他のリスナーがテーブルオブジェクトと協働するためにテーブルの初期化フックが完了した直後に実行される。
- データベース接続、キャッシュエンジン、ロガー、メール送信はurlキーによるデータソース名(DSN)で設定できるようになった。これにより多くのPaaSプロバイダが推奨するアプローチである環境変数での設定の定義が簡単になる。
- Component::initialize() と View::initialize() の追加
- HtmlHelper::meta() で、任意のメタタグを作成できるようになった
- カスタムビュークラスが見つからない場合に例外が発生するようになった
- リクエストデータは強制的にエンティティにキャストすることはなくなった。これによりエンティティデータがオリジナルのリクエストデータに近い形で表現されるためバリデートが簡単になった
- クエリ表現ビルダーは BETWEEN句の生成のために between() メソッドが追加された
- Cake\ORM\Behavior::initialize() の追加
- xdebugがインストールされている場合、重要なエラーの際にスタックトレースが表示されるようになった
- Request::is() は結果をメモリにキャッシュするようになった
- AuthComponent に2つの新しいイベントが追加された。Auth.afterIdentify はユーザが特定されるかログインされた時点で実行される。Auth.logout は AuthComponent::logout() が呼ばれた時に実行される
- SessionComponent は非推奨になった。代わりに$this->request->session()を使用する
- FallbackHasher クラスの各Hasherはオプションを分離できるようになった
3.0.0のすべての変更点の一覧については、移行ガイド(英語)を参照してください。
最後に、3.0のリリースに関わってくれているすべての皆さんに感謝します。皆さんの助け無くしては大きな進展はありえなかったでしょう。
パッケージリリースのダウンロード