フレームワークのススメ
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の主なフレームワークについて解説しました。各フレームワークは独自のポリシーの下で開発が行われており、一長一短な部分もあります。しかしながら、条件に合うフレームワークを採用できれば、さらなる開発効率の向上につながることと思います。