gihyo.jp » DEVELOPER STAGE » 連載 » ZendFrameworkで作る『イマドキ』のWebアプリケーション » 第0回 PHPのWeb開発フレームワーク

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

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

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/

著書

  • Webアプリセキュリティ対策入門〜あなたのサイトは大丈夫?

    Webアプリセキュリティ対策入門〜あなたのサイトは大丈夫?

  • [改訂版]PHPポケットリファレンス

    [改訂版]PHPポケットリファレンス

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

Ruby Freaks Lounge

Rubyに関わる,執筆者自身の旬なテーマを扱った,リレー形式の連載です。

これでできる! クロスブラウザJavaScript入門

JavaScriptはウェブ制作において避けては通れない重要な言語ですが,JavaScriptに苦手意識を持たれている方は少なくないようです。 その最大の原因がクロスブラウザ対応という課題であり,本連載ではクロスブラウザ対応のテクニックを詳細に解説します。

ビジネスで成功するためのシステム運用管理のポイント

システムの多様化,技術進歩に伴い,ITシステムの運用管理の必要性が年々高まっています。本連載では,システムの運用管理とは何かについて,現場のニーズと具体的な指針を押さえながらを解説します。

2010年版SEO体得講座

本連載では,いまや企業サイトの戦略の1つとして欠かすことのできないSEOについて,最新トレンドからすぐに使えるTipsまでを紹介します。

小型Linuxサーバの最高峰 OpenBlockS 600活用指南

搭載メモリの増加,CPUクロックの向上など,あらゆる面が強化された期待の新モデルOpenBlockS 600。この記事ではOpenBlockS 600の紹介から,活用するためのさまざまなノウハウを紹介していきます。

はじめMath! Javaでコンピュータ数学

プログラミング言語入門者向けに,知っていると役立つ数学的トピックスを紹介します。簡単な演習問題と解説で,即活用できる知識を目指します。

教科書には載っていない ネットワークエンジニアの実践技術

ネットワークエンジニア,インフラエンジニアのトラブル対応には,時には「教科書通りにいかない」テクニックが必要となります。資格試験では得られないこうした実践的な技術について,実例を元に紹介します。

Googleケータイ,世に現る

2008年9月,Googleが中心となって開発されている「Android」を採用した携帯電話「T-Mobile G1」が発表されました。本連載ではT-Mobile G1を中心にGoogleケータイに迫ります。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス

最近のコメント