PHPフレームワークの歴史 - PHPプロ!

PHPフレームワークとは?

What is the PHP Framework?

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をはじめ、AgaviEthnaなどの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フレームワーク

世界規模で見た場合、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つのフレームワークを簡単に比較したいと思います。



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)