CakePHP 2.0 のリリース(訳)

CakePHPコアチームはメジャーなバージョン番号のジャンプをアナウンスすることに興奮を覚えています。
CakePHP 2.0 安定版が出ました!
私たちはこのリリースに永久の時を注ぎ込み、このバージョンのフレームワークに素晴らしいアイデアの数々を成すことができました。
これは2.0が意味するものの応急な概要です:

  • PHP4のサポートを打ち切り、全てのコードをPHP5.2以上に厳密に尊守するように書き直しました。
  • 例外、PDO、SPL、json_encodeなどなどのネイティブな機能の使用。
  • ファイル命名へPSR-0を取り入れました。あらゆるクラスは同じ名前を用いてファイルにマッピングされます。覚えることが少なくなりました!
  • 新しいエラーと例外のハンドラーは簡易な設定や、ページが見つからないエラー、承認エラーなどのエラーとの楽な協調、など数多くのものを提供します。
  • マルチリンガルな開発を簡単にするI18n関数の向上。
  • コアファイルを書き換えることなしの、コンポーネント、ヘルパー、ビヘイビアなどのCakePHPライブラリとして振る舞う独自のオブジェクトの組み込みのサポート。
  • コンソールライブラリはスクラッチから書きなおされ、ヘルプの自動的な生成、引数チェック、色付けなどがあります!
  • HTTPリクエストを簡単に扱える新しいRequestとResponseオブジェクト。
  • 簡単なカスタムエンジンによるより良いセッションハンドリング。骨を折る事無くMemcacheなどのストレージシステムにセッションを任せます。
  • 完全に書きなおされたAuthシステム。外部のログインサービスやパーミッションシステムのための独自の実装を簡単に設定、差し込めるようになりました。
  • 複数のデータ転送(transports)のサポートがある真新しいEメールライブラリ。これはグローバル設定、ログ、キャラクターセットのサポートを楽に利用できます。
  • PHPUnitを選んだことに依るSimpleUnitの除外。PHPUnitはより多くのオプション、よりよいモックオブジェクト、コンソール出力の向上を含む、PHPのテストフレームワークデファクトスタンダードです。*1
  • SecurityComponentを余計なことをしないように焼き直しをしました。より簡単に、選んでCSRFとフォーム改ざん攻撃からアプリケーションを守ることができるようになりました。
  • PostgreSqlSQLiteSqlServerのサポートが改善されました。これはMysqlデータソースと同じく、第一級市民(first class citizens)になりました。
  • フォームヘルパーでのHTML 5のフォームinputのサポート。
  • セクシーになったデフォルトの外見は新しいCSS 3の機能を活用してます。
  • ほぼ全てが遅延読み込みをするようになり、デバッグモードでもアプリケーションがまるで飛んでるように感じるほど、とても早くなりました。

以上は恐らくCakePHP 2.0がもっている長所すべてについての記述に及びません。
従って、このリリースを最もドキュメント化されたフレームワークのバージョンとするために構築した優れた新しいbook*2を読むことをお勧めします。
2.0の内部のすべての長所をよりよく理解するためのこのビデオ*3を見ることもお勧めします。スライド*4もあります!
また、多少の時間をかけて今日のリリースをもたらしたように私たちが従っているロードマップを詳しく示しているこのビデオ*5を見てください。
更に、全面的にCakePHPの生態システムが改善されました。
私たちは時間をかけてひとつのコマンドで走る完全なコアのテストスイートを作りました。
これは新しい継続的インテグレーションサーバー*6を使ってコアコードの健康状態を計ることを可能にします。
私たちは、これが堅牢なフレームワークであることを、これまで以上に自信を持っています。

CakePHP1.3から移行する方は、どうか非常に詳細な移行ガイド*7をチェックし、このリリースにバンドルされた新しいUpgradeシェルを必ず使うようにしてください。
多くのアプリケーションは既に移行しており、全般的なプロセスはとてもスムーズで簡単と評価されています。
このバージョンには既によく知られたプラグインと新しいプラグインの生態システムの完全な動作がついてきてます。
次はいくつかの注目すべきもののリストです:

  • DebugKit*8 : 開発用のツールバーを提供し、パフォーマンスの計測、リクエストの履歴、ビュー変数やその他のものの解析をするツールが用意されています。
  • AclExtras*9 : ACLパーミッションにアクセスコントロールオブジェクトの生成と同期を簡単にします
  • Localized*10 : アプリケーションで、各々の国で表示される正しいテキストのバリデーションを行う国特有のクラスのセット
  • Datasources*11 : XmlRPC、Ldap、などなどの追加のデータソース
  • Migrations*12 : 簡単なデータベーススキーマの移行と履歴追跡
  • Search*13 : 数分でURLリクエストから複雑な検索クエリの生成
  • Entity*14 : モデルに配列の代わりにオブジェクトを返すようにする
  • MongoDb*15 : MongoDBをデータベースとして使うソリューションの一つで、データソースを変更したのすら気づかないことでしょう!
  • MongoCake*16 : MongoDBを使い、モデルでオブジェクトを返す、Doctrine ODMとの互換性を保ったもの

2.0.0-RC3から79のコミットがあり20のチケットが解決されました。変更は以下のものを含みます:

  • CakeEmailでの本文とヘッダの文字セット(charset)の設定のサポート。これはユーザが日本語の文字セットでEメールを送ることを可能にします。
  • 内部のドキュメントのリンクを更新しました。
  • ビヘイビアとヘルパーの設定に文字列を使用する文法を除外しました。これはarray('MyBehavior' => 'config string')とすることができなくなりました。代わりに配列の文法を使用してください。
  • 独自のアダプタを用いたセッションの使用でエラーを投げることがなくなりました。
  • 使用されない例外クラスが削除されました。

全ての関連するコミット、チケット、ドキュメントの編集、その他フレームワークへの助力を通しての貢献に関して、多大な感謝を捧げます。あなたがいなければ、CakePHPはなかったことでしょう。

後書き

Bakeryのリリース記事の訳です。
http://bakery.cakephp.org/articles/lorenzo/2011/10/16/cakephp_2_0_released

予想外に早いリリースとなって、困惑してる一方、ようやく2.0が安定版となったことに非常にほっとしています。
更に特筆すべきは、CakeEntityがここで紹介されたことです。
MongoDbは既にCakePHPコアの一部として認識していいほど定着していますが、日本人開発者のプラグインが大々的に紹介されるのはやはり非常に喜ばしいですね。
ドキュメントですが、移行ガイド、新機能の章は翻訳済み*17ですので、それを見て新しいCakePHP2.0アプリケーションを作成する、もしくは移行するといいと思います。
さあ、これからナウな2.0を使ってブイブイ言わせましょう!:P