「CakePHP祭2009」
http://matsuri.cakephp.jp/
のカンファレンスに参加してきました。
.NET関係やXP関係は色々参加してきたのですが、PHPのほうは初めてです。
ちなみに、私はPHPのプログラミングをしたことがありません。まして、CakePHPがあることすら先月までは知りません。なわけで、ざっとPHPのコードを見て参加してみたわけですが、雰囲気が全然、若いですね。かつて、2000年頃にあったXPのユーザ会を思い出します。CakePHPが作られ始めたのは、2002年頃(かな?}らしいのですが、日本で流行り始めたのは、2,3年前みたいです。丁度 java が流行った頃の活気のある雰囲気が味わえました。
さて、私が CakePHP に注目しているのは、
・一般的なホスティングサーバーで動く。
・利用者が多い(習得が楽にできる)PHPを使っている。
・テストが可能な MVC モデルを採用している。
ところです。実際、CakePHP(前身はcake)のアイコンであるケーキは、3層構造であるMVC(あるいはシステムのn層構造?)を示しているそうです。
苺が挟んであるケーキは美味しゅうございました。
PHPのフレームワークと言えばsmartyが有名ですが、ここ2年ぐらいはCakePHPがgoogleなどでよく検索されているそうです。smarty のほうは、java の struts に似ていてい、テンプレート(HTMLを作成するための雛型のようなもの)をタグベースで作ります。java のタグライブラリを更新するに使う、と思うのですが smarty のほうはよく分かりません。
現在まで CMS(コンテンツ・マネージメント・システム)が多く作られ、実際に業務用のサイトで多く使われています。ですが、CMS の場合は、コンテンツ(文章や画像、時にはHTMLのページそのもの)を管理するために、web サーバ上にあるデータベースを検索したり、web サービスを利用する部分については、(多分)別途プラグインという形で作る必要がありました。このため、動作試験自体のフレームワークは皆無といっても過言ではありません。
これに対して、CakePHP のような MVC モデルに焦点を当てたものは、データベース検索等にターゲットを絞り、単体テスト可能(UnitTest可能)な環境を作り出そうとしています。
なわけで、CakePHP を使ったときにユーザーによるコンテンツ自体の管理(ユーザーとはいえ、IT技術者の可能性も多いのですが)が、どのようにしていくのか。あるいは、CMS の機能と CakePHP のモデリングとうまく融合していくのか、という疑問はあるのですが、ひとまず、
・動的なページを作成する。
・動的なページをテスト可能にする。
という開発が多い場合は、CakePHP が極めて有効に機能します。
Joomla CMSにCakePHPアプリを組み込む
http://cakephp.seesaa.net/article/33692804.html
という記事が2007年にあるので、現在のCMSではすでにCakePHPをベースにしたものがあるのかもしれません。
さて、この CakePHP 祭りですが、開発者の方(オーストラリアとカナダの方)が来ていました。
左が Graham Weldon さん、右が Joel Perras さんです。会場にも外国の方も幾人か居られて、なかなか国際的な感じがしました。手に持っているのは CakePHP ケーキです。
そうそう、Perras さんの講演は実に大学講義風で、、、眠くなっちまったよ~。生真面目な方なんでしょうなぁ。
そして、日本側の立役者の安藤さん
そんな訳で、私にとって実に情報量の多い1日でした。
PHP なので、開発事例は WEB 開発に限られることになりますが、私の使いどころとしては WEB サービスなのです。さて、CakePHP と WEB サービスとをどのように繋げるか、かつテストが簡単に作れるようになるか(先行き拡張しやすくなるか)なのですが、ざっと考えたものをupします。give and take ということで。
WEB サービスが model なのか view なのか、という議論はあると思うのですが、WEB サービスもひとつのユーザーインターフェース(マシンインターフェース)ということを考えると、view 相当としたほうがよさそうです。つまり、WEB サービスを MVC モデルで作る場合には、
・model をデータアクセスに使う。
・view を公開する web サービスのインターフェースにする。
・model と view の繋ぎを controller とする。
のような感じです。
そして実装上は、php の NuSOAP + CakePHP の組み合わせを使う。
ひとまず、http://cakephp.jp/ のフォーラムから始めてみようかと思います。
以後よろしくお願いします>cakephpの皆様