こんにちは。松藤です。12月12日に開催されましたCakePHP関西勉強会に参加してきました。主催者、発表者の方々お疲れ様でした。また、こういった機会を提供していただきありがとうございます。

さて、発表の内容に関してましてはshin1x1さんのブログで紹介されておりますので、そちらを参照していただくとして、ここではslywalkerさんが発表されたCakePHPのプラグイン機構に注目したいと思います。

MATSUFUJI Hideharu

CakePHPのプラグイン機構を見る前にPiece FrameworkのWebアプリケーションフレームワークであるPiece_Unityのプラグイン機構を見てみましょう。Piece_Unityのプラグインは大きく次のように分類されます。

  • セッションの開始や認証といったフローやページに依存しない処理を行うインターセプタ
  • フローやページを処理するディスパッチャ
  • HTML_Template_FlexySmartyなどのテンプレートエンジンを使用した出力を行うレンダラ
  • Piece_ORMやプロキシなどの設定ポイントを提供するコンフィギュレータ

Piece_Unityでは多くの機能をプラグインとして実装し、高い拡張性を実現しています。各プラグインの粒度は小さく、クライアントからのリクエストに対して結果を返すという一連の処理の中のほんの一部分を処理するものにすぎません。

これに対し、CakePHPのプラグイン機構はアプリケーション自体を再利用するための機構になっています。つまりコントローラ、モデル、ビューを含んだひとつのアプリケーションをプラグインとして再利用することができます。これはまっつんチャレンジ 1で挑戦中のKahuaの構造に似ています。KahuaのサイトがCakePHPのアプリケーション、KahuaのアプリケーションがCakePHPのプラグインにそれぞれ対応します。

CakePHPのプラグインはPiece_Unityを含め一般的なプラグインの粒度と比べると大きなものです。kumatchさんが「プラグインというよりはミニアプリケーション」と言われていたのは言い得て妙だと思いました。

筆者はCakePHPのプラグイン機構は2種類に大別されると考えています。

ひとつは、垂直ドメインのシステムフレームワークを構築するための基盤としてのプラグイン機構です。例えば、自社でいろいろな不動産検索のシステムを開発している場合、不動産検索システムのフレームワークとして抽出可能な共通部分が出てくるでしょう。これは、そのフレームワークの開発基盤としてCakePHPのプラグイン機構を利用するというものです。

もうひとつは、水平ドメインのプラグインを利用するためのプラグイン機構です。例えば、iGoogleのガジェットのカレンダーや天気予報のように汎用性が高く、どんなアプリケーションにも部品として扱えるようなプラグインです。slywalkerさんは、公開されているCakePHPのプラグインが少ないとおっしゃられていましたが、今後公開されてくるプラグインはこういったものではないかと思います。

筆者は前者の利用方法に注目しています。特定ドメインのシステムフレームワークを構築することは、開発効率を飛躍的に向上させることに繋がります。それは自社のノウハウとなり、強みとなるものです。CakePHPを使うかどうかに関わらず、これからはこういった視点で考え、実装していくことが重要なのだと感じています。

今回のCakePHP関西勉強会は、システム開発についていろいろと考える機会となり、筆者にとってとても有意義なものとなりました。改めて、主催者の方々、ありがとうございました。

参考文献

トラックバック(0)
  • このブログ記事のトラックバックURL:
コメント