PHPフレームワーク特集
PHPフレームワークの歴史と現状
数年前までは、PHPシステム開発では小・中規模の開発が多く、フレームワークが話題となることはめったにありませんでした。PHPにおいてフレームワークが広まり始めたのは、2003年頃に普及した「Phrame」の頃からです。PhrameはJava言語のフレームワークである「Struts」に強く影響を受けたフレームワークで、最低限のMVC(Model-View-Controller)機構が備わっているようなものでした。
| 代表的な フレームワーク |
説明 | |
|---|---|---|
| 2003年 | phrame | フレームワークの黎明期 |
| 2004年 | Mojavi | MVCフレームワークの台頭 |
| 2005年 | Agavi, Ethna, Maple |
フレームワーク戦争時代 |
| 2006年 | CakePHP | Ruby on RailのRAD機能を もつフレームワークの登場 |
| 2007年 | symfony, Zend Framework |
企業レベルで開発された フレームワークの台頭 |
表1 PHPフレームワークの歴史
2004年の後半になると、Mojaviが流行し始めます。この頃からMVCとしてのフレームワークが成熟を見せてきましたが、結局のところ実装の多くを独自に行う必要があり、より高度なフレームワークが求められるようになってきました。
2005年に入ると、Mojaviへの不満から多くの派生フレームワークが登場してきます。ここから「フレームワーク戦争時代」へと突入していきます。Mojaviの後継であるMojavi2、Mojavi3をはじめ、AgaviやEthnaなどのMojavi派生のMVCフレームワークから、DI(Dependency Injection)コンテナベースのフレームワークMapleのような、独自路線のものも登場し始めました。Ethna、Mapleは開発者が日本人だったこともあり、日本語のドキュメントが豊富で、多くの開発者が利用しました。現在では、Mapleは開発が停止してしまいましたが、Ethnaは現在でも開発が進んでおり、利用者は着実に増えています。
2006年、Ruby言語のフレームワークであるRuby on Railsの登場に強い影響を受け、RAD(Rapid Application Development)機能を持つフレームワークが登場します。PHP版のRuby on RailsともいえるCakePHP、Mojaviの流れを汲みつつもRailsの思想を取り入れたsymfonyなどが脚光を浴びるようになります。CakePHPはシンプルかつ小規模なフレームワークで、小さなアプリケーションにも組み込める点で人気となりました。
これらのフレームワークのポイントは「いかにコードを書かずにプログラムを作るか」「いかに面倒見の良いフレームワークを作るか」という点で、コードの部品化支援だけでなく、RAD開発をするためになくてはならないツールとなりました。
また、この時期に登場したPHPフレームワークの特徴として、フレームワークの開発がこれまで主流であった個人レベルでの開発から、開発のスポンサーとして企業がバックにつくなど、企業レベルでの開発に移行したという点も留意すべき点です。
世界的に最も普及していると言われるCakePHPとsymfonyを例に上げると、CakePHPの開発はアメリカの企業が行い、またsymfonyの開発スポンサーはフランスの企業が行っています。symfonyに関しては中心的な開発者がシリアルアントレプレナー(※注1)として、一日中開発に携わっています。PHPフレームワークの開発に企業が関わることで、進化の速度が上がり、充実度が増し、更に開発が停止してしまうというリスクが軽減されました。
また、2007年7月には、Zend Technologies社を中心としたコミュニティより、Zend Frameworkの正式版がリリースされました。
このような理由により、近年、フレームワークを取り入れた開発が急速に普及してきています。
※注1:シリアルアントレプレナー(連続起業家)とはベンチャー事業を起業し会社を成長させ、大企業に売却して巨万の富て、その資金を元に再び起業する人を指します。
検索数からみた全世界のPHPフレームワークのトレンド

世界規模で見た場合、PHPフレームワークとしてCakePHPとsymfonyの普及が当面続くと予想されています。検索数から見るフレームワークのトレンド(※注2)はその人気、注目度を計る一つの指標となります。symfonyは世界的にみて大規模なWebサービスに採用され、今後の「伸び」が期待できますが、PHP4を使用するユーザー(※注3)も未だ多いため、PHP4では使用できないsymfonyにユーザーが集中するとは言い切れません。またZend FrameworkはPHPのエンジンを開発している、Zend Technologies社が開発しているフレームワークでもあり、その信頼性から、今後シェアを広げる可能性があります。
※注2:キーワード検索による傾向を「cakephp」、「symfony」、「zend framework」、「mojavi」、「ethna」で調査(大文字・小文字の区別なし)。グラフにMojaviが含まれていないのは2007年度の検索数が一定数に達していないため(圏外の扱い)となります。
※注3:PHP4は2007年12月31日をもって、PHP4.4を含むPHP4系の開発は停止、また、2008年8月8日をもって、PHP4のセキュリティ・パッチの提供も停止となります。
開発事情によっては、上記に上げた以外のフレームワークの方が、開発に適しているというケースもあるでしょうし、今後ここに取り上げてないフレームワークが登場する可能性もゼロではありません。
また、Webアプリケーション開発全体を眺めた場合、PHPに限らずさまざまな言語において、多数のフレームワークが進化を続けています。言語の壁を越えて、それらから新たなインスピレーションを受けたフレームワークが現れてくる可能性もあり、引き続きフレームワークの動向には注意を払う必要があります。
上記のトレンドグラフを一つの指標と考え、この特集では注目を集めている、あるいは世界的に広く使用されている実績ある以下の3つのPHPフレームワークをとりあげて紹介したいと思います。
次に上記に上げた3つのフレームワークを簡単に比較したいと思います。
| 目次 | |
|---|---|
| フレームワーク全般について | |
| PHPフレームワークとは? | |
| PHPフレームワークの歴史 | |
| PHPフレームワークの比較 | |
| 個々のフレームワークについて | |
| CakePHPとは? | |
| symfonyとは? | |
| Zend Frameworkとは? | |





