TOPシステム開発> PHPとフレームワークの関係
Symfony
PHP開発の秘訣フレームワーク活用術

第1回:PHPフレームワークとは何か

著者:オープンドリーム  三宅 泰裕   2007/5/29
1   2  3  次のページ
PHPとフレームワークの関係

   もともとPHPというのは、大規模な開発を想定して開発された言語ではありません。「個人のホームページに簡単に動的なコンテンツを追加したい」という想いのもと、開発された言語であるのは、PHPがPersonal Home Page Toolsという名前で世に出たことでも皆様も良く知る所だと思います。

   当初のPHPは、HTMLのページの中に動的なコンテンツを少し埋め込むために広く使用されました。その後PHP 4の登場により、オブジェクトの実装が実用に耐えるまでになり、少しずつ大規模なアプリケーションの開発に耐え得る言語として、PHPが認知されるようになりました。それを如実に示したのが、CMSであるXoopsやECサイト構築を支援する「osCommerce(注1)」です。
※注1: osCommerce
osCommerceは、国際的なコミュニティで開発が進められているオープンソースの E-Commerceソリューション。

   osCommerceの成功を元に、PHPはその利便性が様々な所でとりあげられ、個人用途として使用するツールの枠を超え、次第に大規模な開発案件の開発言語として使用されるようになりました。

   しかし、大規模な開発案件になると、1人の達人的なプログラマのみが開発を推し進めていくことが難しいのも現実です。そこでPHPの世界でもフレームワークが使用されるようになりました。Mojaviがそのころの代表的なフレームワークです。

   Mojaviはとてもよく考えられた優秀なフレームワークでしたが、幅広く認知されるまでには至りませんでした。それはJavaに比べると、PHPのオブジェクト指向サポートが弱かったというのも1つの理由だったのかもしれません。

   しかしMojaviの登場したことは良い意味で、利便性や手軽さというのが一気に広まった時期でもありました。しかしながら、PHP 4からPHP 5にスイッチしたことで、オブジェクト指向サポートが一気に加速し、Javaライクなプログラミングスタイルが可能になったのです。

   これとともに、フレームワーク開発も加速し、現在PHPフレームワークは百花繚乱の状態であるといえます。またZendが公式にフレームワークの開発に着手したのもフレームワーク旋風の追い風になったともいえるでしょう。

   そして何よりも強烈なインパクトを持っていたのは「Ruby on Rails」の台頭です。Ruby on Railsでアジャイル開発やeXtreme Programming、RAD(Rapid Application Development)を行うという風潮が広まり、PHPフレームワークも少なからずその影響を受けていえます。

   もはや、フレームワークは単純に開発を効率化するためのものだけではなく、保守や運用も視野に入れた統合的な開発環境として提供される傾向にあるといえます。そこで本連載では2回に分けて、PHP 5に特化したフレームワークである「Symfony」を題材に、フレームワークを使う意義や開発手法を紹介します。


フレームワークをなぜ使うのか

   なぜ、フレームワークを使うのか、という質問を筆者が受けたとき、単純に「楽しいから」と応えるのですが、現実問題としてそんな悠長なことはいっていられません。まず最初に、フレームワークを導入する際に頭に思い描くことをいくつか整理して考えてみましょう。

   プログラム言語を使って開発案件を請け負うということを考えると、単純にプログラムを書いていれば良いというものではないことは、皆さん充分ご承知のことです。上流工程から下流工程までの様々な工程の中に、様々な仕事が振り分けられています。もし大規模な開発案件を受注した際にフレームワークのない開発をするのであれば、まずするべきことは開発をするためのフレームワーク作りだといえるでしょう。

   これは要するに、必要と思われる項目を遵守すべき枠組みとして決めてしまうわけです。コーディング規約策定や擦り合わせをはじめ、SQLの書き方やディレクトリ構造の規約、煩雑な設定の周知徹底など、およそ開発とはかけ離れたレイヤーでプロジェクトリーダーやマネージャーは奔走することになります。

   しかしながら、そのすべてが枠組みのなかで決められていたらどうでしょうか。

   フレームワークという枠組みを導入することで機械的に型にはまった開発が可能になります。ひいては開発の原点である「モノを作る」ということに集中できるようになります。基本的にフレームワークを導入するということは枠組みの中に納めるということですので、単純に開発効率のアップや煩雑な下準備からの開放ということにも繋がるのです。

   またほかにも、先進的な技術を手早く取り込めるというのもフレームワークを使う理由の1つです。Web 2.0という言葉をよく耳にするようになりました。その中のコアな技術としてAjaxというものが、Webページの表現の可能性としてにわかにブームになっています。

   PHPはサーバサイドでの技術ですので、Ajaxベースでリッチクライアント開発を進めていくには適当な言語だといえます。しかしながら、Ajaxベースで開発を進めていくのは大変な労力を要するのは、Ajaxの開発経験のある方なら容易に想像できると思います。

   たしかにAjaxを用いた開発を進めていく際にPHPのみで進めていくのも1つの選択肢であると思いますが、フレームワークを用いることによって、一元的にAjaxを用いた開発を進めて行くことができるのです。これもフレームワークを利用する大きなメリットの1つになり得るでしょう。

   では次に、PHPを用いた代表的なフレームワークの紹介をします。

1   2  3  次のページ


株式会社オープンドリーム チーフトレーナー 三宅 泰裕
著者プロフィール
株式会社オープンドリーム  チーフトレーナー  三宅 泰裕
Western Institute of Technology at Taranaki卒業。
プログラムはVisual Basicからという意外と今時なプログラマで、現在は主に教育を担当する現役講師。趣味もプログラミングというから、随分重傷。PHPに出会い、Linux、そしてオープンソースに魅せられる。そして、Ajaxだ!と思った時にばたりとSymfonyに出会いアジャイルの虜に。Ruby on Railsを始め色々なWebアプリケーションフレームワークをつまみ食いしては、自社の開発案件や教育事業に活かしている。「技術を楽しめる教育の創造」をモットーに奮闘中。


INDEX
第1回:PHPフレームワークとは何か
PHPとフレームワークの関係
  代表的なPHPフレームワークの紹介
  Maple