コラム

吉谷愛氏コラム「影響しあいながら成長するPHPフレームワークたち」

Pocket

前回は良くはまりがちな「効率的でない」PHPの学習方法についてご紹介する過程で、MVCフレームワークについてご説明させていただきました。
今回は個別のPHPのMVCフレームワーク(以下フレームワーク)について、もう少し詳しくご説明していきます。
下記にわかりやすいように、時系列にして表してみました。これを見るだけでフレームワーク同士がお互いに影響しあいながら、成長し、ある時にはまったく新しいフレームワークを生み出してきていることが、おわかりいただけるかと思います。

2000年前半のPHPフレームワークは、PHP4でも動くことが必須だった
2002年:Phrame
こ のフレームワークが出てくる以前はPHP開発は中小規模開発での使用という位置づけでフレームワークの使用は一般的ではありませんでしたが、Javaで爆 発的に流行したStrutsの影響を受けたPhrameが出てきて、PHPでもフレームワークの使用が一般的になってきました。このPhrameは JAVA/Struts から移行してきたプログラマにとって、習得コストの低さが非常に魅力的でした。 StrutsはXMLで設定ファイルを記述するのに対して、「Phrame」 はスクリプト内で連想配列として設定を組み立てる形式となっています。

2003年:Mojavi
フ レームワークの使用が一般的になった2003年、MojaviというPHPフレームワークが普及しました。この頃はPHPのフレームワークといえば Mojavi でした。Phrame同様非常にシンプルなフレームワークでしたが、Phrameと違い「Mojavi」は純粋にPHPのために作られました。設定ファイ ルレスという触れ込みでしたが、一部Phrame同様スクリプト内で記述する必要がある場面もあります。

2004年Ethna
2003年にオブジェクト指向となったPHP5が発表され、2004年以降はMojaviだけでなく、様々なPHPフレームワークが台頭し、特に国産のフレームワークが勢いを持ち出しました。
その中でもGREEのcto藤本真樹氏が開発したEthnaはGREE人気と相まって一躍有名になりました。
PEARが必要でmysqlやsmartyの知識が必要だったりphp4/php5の両方に対応していたりするところ等、既存のPHPプログラマにとっては今までの知識を活用できかつ実践的で使いやすいものとなっていました。

2000年後半は、Ruby On Railsの影響を受けたPHPフレームワークが主流に
2005年CakePHP
Ruby言語のフレームワークであるRuby on Railsが登場し、その強力なRAD機能や柔軟なO/Rマッピング機能などに、他言語のフレームワークも強い影響を受けるようになります。
PHP も例外ではありませんでした。Ruby on Rails の影響を強く受けているといわれるCakePHPは、シンプルかつ小規模なフレームワークで、小さなアプリケーションにも組み込める点で人気となりまし た。特に日本では日本語のドキュメントが充実していることもあり、今でも非常に多くのユーザを獲得しています。
またCakePHPではありませんが、2000年前半PHPフレームワークの主流だったMojaviの後継であるMojavi2や2007年に発表されたSymfonyも、Ruby on Railsの影響を受けているといわれています。

2006年CodeIgniter
このあたりから他のフレームワークとの分かりやすい特徴付けとしてシンプルさと共に速度をアピールするCodeIgniterのようなフレームワークが出てくるようになりました。
現存のリッチなフレームワーク特有の独自規約が少なく、厳格なコーディングルールも求められません。代わりにRAD機能は本当にシンプルなものしか提供されませんでしたが、エンジニアがある程度自由にフレームワークを拡張することが可能でした。
また、このあたりから、PHP4に一切対応しないフレームワークが主流となってきました。

2010年後半から、様々なビジネスシーンを意識したPHPフレームワークが台頭してくる
2010年FuelPHP
2007年以降も様々なphp向けのフレームワークが登場しましたが、世界的にみるとCodeIgniter(日本ではCakePHP)が主流となっていました。
そ んな中、出てきたのがFuelPHPです。CodeIgniterに関わった人々によってつくられただけあってCodeIgniter によく似た作りになっており、CodeIgniter 経験者であれば学習コストはあまりかからないようになっています。そこにCakephpやrubyonrailsで採用されているCRUD機能やバリデー ション機能、しっかりした脆弱性保護等、今までのフレームワークの「良いとこどり」をしたものになっていました。

2011年Laravel
CodeIgniterやFuelPHPはあくまでビジネスフィールドでの勝利を目指していました。が、ここでパーソナルユーザに先進的で快適なプログラミング環境を提供することを当面の目標とするLaravelというフレームワークが出てきました。
し かし簡潔で直感的なわかりやすいコーディングスタイルやRedisサーバーの利用やクラスのオートロードなど、Laravelには非常に先進的な技術が内 包されています。米国ではFuelPHPよりも人気が高く、最初はパーソナルユーザ向けでも最終的にビジネスシーンでも勝利を収める可能性を十分秘めてい るといえるでしょう。

2012年Phalcon
PhalconはC言語で製作された非常に高速なフレームワークです。あるベンチマーク結果ではCodeIgniterの2倍近いスコアを叩きだしました。またメモリの消費量も非常に少なく、今後ビジネスシーンにおいての需要の拡大が期待されています。

ここに記載されている以外にも、ZendFramework、Smarty、その他様々なPHPフレームワークが発表されています。
今回のようにフレームワークの歴史を追う過程でフレームワークがどう生まれどう変化しどう滅んだのかを学んだ結果、
「このフレームワークはなぜこのような機能が付与されているのか(もしくは付与されていないのか)?」
と いうよくある疑問が解決することが多いです。また、このように複数のフレームワークを比較すると、何がそのフレームワーク特有のことで、何が複数のフレー ムワークで共通のことなのかを学ぶことができます。それがわかると、これからでてくる新しいフレームワークの習得が容易になります。

とは いえ、しっかり学習しようとすると、必ずPHPの文法をはじめとする基本知識が必要になってきます。独学を効率的かつ有意義なものにしたい方は是非トレー ニングにご参加ください。基本技術を習得するうえで、独学とトレーニングでは、習熟度に差が出ます。仕事で使う場合は、漏れがないように体系立てた学習を トレーニングで学ばれた方が、確実であり、時間面でもコスト面でも効率的です。それにもしつまずいても、講師がいるのでその場で解決できます。
おすすめはPHP技術者認定試験の初級試験講座です。
皆様と教室でお会いできることを楽しみにしております。

次回予告


次回は、PHPとフレームワークで作成されたWebアプリケーションが動くPaaS環境についてご説明します。自分が作成したWebアプリケーションを簡単にデプロイして使用できるようになった瞬間、あなたの学習意欲はもっとあがるでしょう。


吉谷 愛 氏
フロイデ株式会社 代表取締役

「最 新のアーキテクチャを追及し続ける技術者集団」を目指す、フロイデ株式会社代表取締役社長。現在は、自身のCOBOLからRailsまでの非常に幅広い開 発経験や、学生や未経験社員への技術指導経験を糧に、技術講師としてソフトウエアエンジニアの育成に注力している。2013年06月より、初心者向けの 「はじめようRuby on Rails開発!」シリーズを考案。“技術者の立場にたった、技術者の心に火をつける”熱い講義をモットーとしている。

 

関連記事一覧