毎年恒例のCakePHPの公式カンファレンス、CakeFestが2014年8月21日にスペイン、マドリードにてワークショップ2日間、カンファレンス2日間の合計4日間で開催されました。 今回も講演を採択されたので参加してきましたが、ハイライトをご紹介します。
スペイン開催により欧州参加者多数
今回はスペイン、マドリードが開催地に選ばれました。ヨーロッパで開催される場合はイギリス、マンチェスターが直近では3回連続で選ばれていました。 目新しい開催地という事でやはり地理的に近いスペインやヨーロッパ諸国からの参加者が多く非常に活況でした。 エストニアやフィンランド、ノルウェーなどから来た開発者の方に会うことができ面白い話を聞くことができました。 ウェブサイトなどを見ていても感じにくい点ですが、CakePHPの利用者は多様性が実に高くさまざまな国で利用が進んでいます。 参加者数も130人弱という事でCakeFestとしては過去2番目に多い人数で非常に盛り上がっていました。
また本筋には関係ないかもしれませんが、会場のホテルで提供される料理もとても美味しかったのが印象的です。
CakePHP Community Keynote
基調講演はCakePHPのコミュニティマネージャーを務めているJames Watt氏が担当しました。 ここ数年、CakePHPのコミュニティのまとめ役としてJames氏が精力的に活動していますが、あまり技術を深追いせず、参加者が楽しく過ごせるようにという点に心を砕くJames氏の存在はCakePHPにとって非常に大きい意義があります。
開発者の入れ替わりや金銭面でのすれ違いなどでギクシャクしたこともあるCakePHPコミュニティはJames氏の手腕でより強い形に生まれかわったといえるかもしれません。
彼が自身の講演で強調していたのは下記の点です。
- CakePHP史上、最も活発な開発
- 全世界に広がるアクティブなユーザーベース
- 書籍、ポッドキャストなどの広がり
The road to CakePHP 3.0
リードデベロッパのMarkからはCakePHP3の開発思想などを中心とした発表が行われました。 スライドで見ると非常にシンプルですが、CakePHP3の現状と未来を知る極めて重要な内容が数多く含まれた興味深い内容でした。
- Cake3 (現Lithium) とは別物
その後、LithiumになったCake3と今回のCakePHP3はコードベースも経緯も異なる物です。今回のCakePHP3は従来からメンテナンスされてきたCakePHPをベースにアーキテクチャを改善しているフレームワークです。 - 外部ライブラリの非採用 (Doctrine, HttpFoundation, StackPHP)
CakePHP3ではORMを新規に開発していますが、それに至るまでにはDoctrineの採用なども議論されています。 しかし使い勝手やドキュメントの一貫性などの観点から最終的に不採用を決めています。 - 外部ライブラリの利用 (Carbon, Aura/Intl, password_compat)
CakePHPは外部ライブラリを使わないというポリシーなのではなく、 総合的に判断して外部ライブラリで独自実装を置き換える判断も行われました。日付のフォーマット処理、国際化対応、パスワードのハッシュ化 などのロジックがCakePHP本体から削除され外部ライブラリに切り替わります。 - コアではない機能の分離 (Scaffold, Acl, Migration)
長らくCakePHP本体に組み込まれていた機能がプラグインに切りだされました。これによりメンテナンス性もあがり、フレームワーク本体を小さく保てるようになるでしょう。 - より最新のPHPの利用
CakePHP3ではマイナーバージョンアップの際により最新のPHPのバージョンへの移行も積極的に進めていくそうです。 現在のところはPHP5.4以降をサポートしていますが、CakePHP3.1、3.2などでより新しいバージョンになる可能性が高いです。 - 長いメンテナンスサイクル
CakePHP1.3系はCakePHP3がリリースされるとついにメンテナンスが終了します。 しかしこれはMarkいわく「マイクロソフトのOS並みのメンテンナス期間」であるとのこと。 CakePHP2系についても少なくとも今後3年間のサポートが続く予定です。
どのトピックもCakePHP3がメンテナンス性と使い勝手について深く考慮している事がわかりました。 ORMの刷新に注目が集まりがちですが、むしろCakePHP3自体は従来よりもコンパクトなフレームワークを志向しており、 フルスタック時代からコンポーネント時代に対応しているといえるでしょう。
Advanced quering with the new CakePHP 3.0 ORM
ORMの開発を担当しているJoseからは新しいORMの思想と利用方法についてが解説されました。
使い方の例はこれまでと同じような事ができるORMであるという事なんですが、Joseによる設計思想がとても印象的でした。
- The R in ORM
SQLは優れた言語ですぐには無くならない。また実行効率も高い。 例えば「前回のワークショップの参加者のメールアドレスのリストは?」といった要求にプログラミング無しに応えられる。 - No intentions of being more than ORM
リレーショナル・データベースでないデータを接続したりはしない。 過剰な抽象化を排除する。NoSQLをCakePHP3から使う際はあくまでストレージ。 - 最終的には独立したライブラリに
現時点ではCakePHPに同梱されるORMを最終的には独立したライブラリとして成立させる構想を持っているようです。
ORMを独自実装するというのはチャレンジングすぎるのではと思っていましたが、 対象としている問題を整理しほどよいサイズと使い勝手のORMを作っていることがわかりました。 個人的に時間をかけてDoctrineと似たようなものを作るならDoctrineを使えばいいのにと思っていましたが、 問題を限定する事で使い勝手のよいORMになるでしょうし、独自に実装する価値があると感じました。
まとめ
今回のCakeFestでの情報収集はCakePHPについての現状と今後の認識を大きくかえてくれました。
時代の変化に適合させつつ、コンパクトで使いやすいフレームワークをめざすCakePHPはCakePHP3になってからも継続的な発展が見込めそうです。 また従来のバージョンについてもメンテナンスが続けられますので、CakePHP3のリリースは多くのCakePHPユーザーにとって歓迎すべき内容となるでしょう。