フレームワークのススメ

2008年5月15日(木)
尾藤 正人

symfony、CakePHP、Zend Frameworkの特徴

 まずは、オブジェクト指向を意識したフレームワーク「symfony(http://www.symfony-project.org/)」について解説します。

 symfonyはMojavi(http://phrame.sourceforge.net/ )というフレームワークから分岐したのがきっかけで、作成されはじめたPHP 5専用のフレームワークです。MVCを採用し、Propelと呼ばれるORMやScaffold、プラグイン機能など、前述したいわゆる「全部入り」のフレームワークです。有名どころではYahoo! Bookmarksなどが採用するなど実績も多く、豊富なドキュメントや、フォーラムやBlogも活発に活動しています。今最も盛んなフレームワークの1つです。symfonyについては、「symfonyで楽々開発(http://www.thinkit.co.jp/article/71/1/)」を参考にしてください。

 PHP 5専用であるため、より強くオブジェクト指向を意識した作りになっています。このためプラグイン機能を使った疎結合な機能追加などが容易で、またYAMLを採用した設定項目管理やキャッシュ機構、国際化にも対応しています。

 次に、CakePHP(http://www.cakephp.org/ )について見ていきましょう。CakePHPはMITライセンスで配布されているフレームワークで、symfonyと大きく違うところはPHP 4にも5にも対応しているところです。RoR(Ruby on Rails)の影響を非常に強く受けており、ORMなどにその片鱗を見ることができます。

 またディレクトリ構成が簡単でわかりやすく、レンタルサーバなどでも簡単に利用しやすくなっています。こちらもドキュメントは豊富で、symfonyと同じくチュートリアルも用意されているなど、とても利用しやすくなっています。

 3つ目は上記2つのフレームワークとは少し毛色が異なるZend Framework(http://framework.zend.com/ )です。こちらはPHPを開発するZend Technologies社が開発しているPHP 5専用のフレームワークで、BSDライセンスで配布されています。3つとも豊富なドキュメントがありますが、こちらは早くから公式の日本語ドキュメントが公開されておりとても学習しやすいものになっています。

ライブラリコンポーネント集

 Zend Frameworkが他のフレームワークと大きく違うところは、各コンポーネント(部品)が分離・独立しているところです。この疎結合さが一番の特徴で、他のフレームワークからも利用できるほどの独自性を持っています。MVCの概念の下、他のフレームワーク同様に開発することも可能ながら、この独立性のおかげで非常に再利用しやすくなっています。また拡張して使うことも非常に簡単です。さらに言えば、利用したいコンポーネントのみを学習すれば良いため、非常に導入または学習コストを低く抑えられることも特長です。

 今回はフレームワークの概念から、現在のPHPの主なフレームワークについて解説しました。各フレームワークは独自のポリシーの下で開発が行われており、一長一短な部分もあります。しかしながら、条件に合うフレームワークを採用できれば、さらなる開発効率の向上につながることと思います。

ウノウ株式会社
CTO。広島市立大学大学院在学中にVine Linux SPARC版の開発を行う。2002年4月、HDEに入社。2003年度未踏ユースプロジェクトに採択され、「みかん - サーバ自動選択型FTPサーバの開発」を行う。退職後、シリコンバレーに語学留学のため渡米。2004年12月、帰国してウノウに参画。写真共有サイト「フォト蔵」を開発中。ブログ:ベイエリア情報局http://blog.bz2.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています