ZendFrameworkで作る『イマドキ』のWebアプリケーション

第0回 PHPのWeb開発フレームワーク

この記事を読むのに必要な時間:およそ 4.5 分

PHPは構文も容易で,開発者が言語を習得するのは非常に簡単です。また,性能もよいためWebアプリケーション構築に幅広く利用されています。

PHPが開発され始めた頃は,WebアプリケーションといえばCGIインターフェースを利用し,既存の汎用言語でプログラミングするのが一般的でした。PHPは,URIやPOSTリクエストのデコードや,HTTPセッション管理を標準機能として持っています。埋め込み型言語であるので,PHP自体がテンプレートとも言えます。PHPは汎用プログラミング言語としても利用できますが,簡易版のWeb開発フレームワーク(以下フレームワーク)と言えます。

筆者はこれがPHPが非常に人気の高い言語になった理由の一つだと考えています。しかし,PHP本体のフレームワーク的な機能は現在のフレームワークとしては不十分です。このため,PHP用のフレームワークが多数開発されています。

本連載は,ZendFramekworkを用いたRESTfulで本格的なAJAX Webアプリケーションの構築を習得することが目的です。ZendFramework自体を解説する前に,PHPで利用可能な主なフレームワークを紹介します。

PHP用のフレームワーク

日本で比較的人気があるフレームワークには,Ethna,Maple,Piece Framework,Agavi(Mojavi),CakePHP,CodeIgniter,Symfony,Zend Frameworkがあります。これらのフレームワークの現状を簡単にまとめたものが表1です。順序に意図はありません。国産フレームワークとそれ以外に分け,アルファベット順に記載しました。ZendFrameworkを除き,安定版バージョンは2008/9/4時点※1でのバージョンです。PHP4もサポートしているフレームワークは比較的古くから開発されているフレームワークです。ZendFrameworkは,これらのフレームワークの中でも最も新しく開発されたフレームワークの一つと言えます。

表1 主なフレームワークの状態

Ethna

国産フレームワーク。2.5.0はUTF-8に対応し,文字エンコーディングへの依存を解消。

 - 仕様PHP4/5対応
 - ライセンスBSDライセンス
 - URLhttp://ethna.jp/
 - 最新安定版2.3.5(2008/05/08) 約0.5MB
 - 最新版2.5.0 preview1(beta) (2008/07/05)
Maple

国産フレームワーク。PHP4にも対応したバージョンの開発は停止している。作者に確認した所,PHP5対応のMapleの開発をドキュメント関係から着手している状況。

 - 仕様PHP4/5対応
 - ライセンスPHPライセンス
 - URLhttp://kunit.jp/maple/
 - 最新安定版3.2.0(2006/12/17) 約0.8MB
Piece Framework

国産フレームワーク。ページ状態を維持する事が特徴のフレームワーク。Eclipseにも対応。

 - 仕様PHP4/5対応
 - ライセンスBSDライセンス
 - URLhttp://piece-framework.com/
 - 最新安定版1.5.0(2008/09/04) 約0.4MB
Agavi

Mojaviの後継とされるフレームワーク。2008/08/31にAgavi 2.0.0 beta 2がリリース。

 - 仕様PHP5対応
 - ライセンスLGPLライセンス
 - URLhttp://www.agavi.org/
 - 最新安定版0.11.2(2008/08/31) 約11MB
 - 最新版1.0.0 beta2(2008/08/31)
CakePHP

Railsの影響が強く見られるフレームワーク。設定よりも規約を優先し記述するコード量を削減。

 - 仕様PHP4/5対応
 - ライセンスMITライセンス
 - URLhttp://cakephp.org/
 - 最新安定版1.1.19.6305(2008/01/01) 約1.3MB
 - 最新版1.2.0.7296 RC2(2008/07/27)
CodeIgniter

軽量なフレームワークで初期状態からほとんど設定無しでアプリケーションの構築が可能。

 - 仕様PHP4/5対応
 - ライセンスApache/BSDスタイル
 - URLhttp://codeigniter.com/
http://codeigniter.jp/(日本CodeIgniterユーザ会)
 - 最新安定版1.6.3(2008/07/26)約1.6MB
Symfony

Mojavi3から派生。ほかのプロジェクトの成果を積極的に取り入れているフレーワーク。ほかのプロジェクトのライブラリ等を広く利用している。

 - 仕様PHP5対応
 - ライセンスMITライセンス
 - URLhttp://www.symfony-project.org/
 - 最新安定版1.1.1(2008/06/26) 約12MB
ZendFramework

アプリケーションのディレクトリに特定の構造を想定していない,各モジュールの独立性が高く単体でも利用可能というライブラリ的な要素が強いフレームワーク。

 - 仕様PHP5対応
 - ライセンスPHPライセンス
 - URLhttp://framework.zend.com/
 - 最新安定版1.7.0(2008/11/18) 約19MB
※1

本記事は,Software Design 2008年11月号「特別企画:PHP最新動向2008」をもとに,本連載用に再構成したものです。

ライセンスは本体のライセンスのみ記載しています。バンドルされたライブラリを持つフレームワークには複数のライセンスが摘要される場合があります。必ず読者自身でライセンスを確認してください。

リリース時期からも分かるように,各フレームワークの開発は精力的に行われていることが分かります。例外はMapleですが,Mapleの作者(kunit氏)によると,PHP5に対応したフレームワーク開発の準備を行っているとのことでした。国産3大フレームワークのEthna,Maple,Piece Frameworkも健在です。

これらすべてのフレームワークは,MVCパターン,ORMまたはDBオブジェクト,バリデーション等,フレークワークに欠かせない機能が実装されています。Zend FrameworkにもMVCパターンを実装するためのフレームワークが用意されています。

これらのフレームワーク以外にも沢山のPHP用フレームワークが開発されています。紹介しきれなかったフレームワークの名前とURLです。これらのフレームワークも比較的人気が高いフレームワークです。これらのフレームワークは2008年にリリースを行っており,メンテナンスされていると考えてよいでしょう。

表2 その他のフレームワーク

名前PHPURL
Akelos PHP4/PHP5http://www.akelos.org/
eZ ComponentsPHP5 http://ez.no/jp/ezcomponents
Fusebox PHP4/PHP5http://www.fusebox.org/
PHPDevShell PHP5 http://www.phpdevshell.org/
PhpOpenbiz PHP5 http://www.phpopenbiz.org/jim/
Prado PHP5 http://www.pradosoft.com/
ProjectZero PHP5 http://www.projectzero.org/
QPHP PHP4/PHP5http://qphp.net/
Seagull PHP4/PHP5http://seagullproject.org/

これだけ沢山のフレームワークがあると,どのフレームワークを選べばよいのか分からなくなります。ビジネスで利用するフレームワークを選択する場合,そのフレームワークのメンテナンスが十分長く継続されることを期待できるかは非常に重要なポイントになります。

ZendFrameworkは,PHP言語コアのZendエンジンを開発したZend社が開発しています。Zend社はIBM,Microsoftとも提携しています。IBMが独自に開発しているsMash(ProjectZero)にもZendFrameworkを利用できます。ZendFrameworkはIBMが開発をサポートしているDojo AJAXフレームワークをサポートしています。ZendFrameworkは比較的長期のメンテナンスが期待できるオープンソースプロジェクトです。

著者プロフィール

大垣靖男(おおがきやすお)

University of Denver卒。同校にてコンピュータサイエンスとビジネスを学ぶ。株式会社シーエーシーを経て,エレクトロニック・サービス・イニシアチブ有限会社を設立。
オープンソース製品は比較的古くから利用し,Linuxは0.9xのころから利用している。オープンソースシステム開発への参加はエレクトロニック・サービス・イニシアチブ設立後から。PHPプロジェクトでは,PostgreSQLモジュールのメンテナンスを担当している。

URLhttp://blog.ohgaki.net/

著書

コメント

コメントの記入