Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Zend Framework入門(1):フレームワークの全体像とインストール

Zend Frameworkによる実践的なPHPアプリケーション開発

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/11/12 14:00

連載では、PHP上で動作するアプリケーションフレームワークの「Zend Framework」について紹介していきます。導入の今回は、まずZend Frameworkの特徴と環境設定手順までを解説します。

目次

はじめに

 本連載では、PHP上で動作するアプリケーションフレームワークの「Zend Framework」について紹介していきます。本連載では、以下の内容を扱う予定です。

  • Zend Frameworkフレームワークの特徴
  • Zend Frameworkを利用するための環境設定手順
  • Hello, Worldアプリケーションの作成/基本的なコンポーネントについての解説
  • その他Zend Frameworkにおける各種コンポーネントについて

 導入の今回は、まずZend Frameworkの特徴と環境設定手順までを紹介します。

対象読者

 PHPの基本構文は一通り理解しているが、フレームワークを利用したことはないという方を対象としています。

必要な環境

 Zend Frameworkは、PHP5.1.4以降とWebサーバがインストールされている環境で利用可能です。本稿ではWebサーバとしてApache2.2を、OSにWindows XPを採用し、アプリケーションを作成していきます。また、次回以降のサンプルでは、データベースとしてMySQLを用いる予定です。

 以下に、今回アプリケーション作成/動作確認に用いた環境を示します(インストールにあたっては最新安定版の使用を推奨します)。各項目の詳細なインストール手順は、「サーバサイド技術の学び舎 - WINGS」より「サーバサイド環境構築設定」を参照ください。

  • WindowsXP SP2
  • PHP 5.2.4
  • Apache 2.2.6

 LinuxやFreeBSDなどUNIX系OSをお使いの方もコマンドはほぼ一緒ですので、パスなどは適宜読み替えてください。

Zend Frameworkとは

 フレームワークそのものの概念については、拙著『symfony入門(1):symfonyで始めるPHPフレームワーク』を参照ください。

 今回紹介するZend Frameworkは、PHP開発本家であるZend Technologies社が中心となって開発した、BSDライセンスに基づくオープンソースのPHP5用MVCフレームワークです(PHP5.1.4以降が必要となります)。本家サイトによれば、以下の様な特徴があります。

  • シンプルであること(simplicity)
  • 拡張性があり、よくテストされたコードベース──拡張も容易
  • 柔軟な構造──固いアプリ構造に縛られない
  • 起動・実行等に必要な設定ファイルがない
  • オブジェクト指向

 Zend Frameworkは非常にシンプルな構造をしていて、すべてPHP5のオブジェクト指向を用いて設計されています。一つ一つのクラスライブラリは「コンポーネント」と呼ばれ、それぞれを単独で呼び出すことができます。Zend FrameworkはMVCモデルに基づいて設計されていますが、そのMVCもコンポーネント群として提供されていますので、Zend Frameworkのコンポーネントは用いるがMVCは使わないといったこともありえます。

 以下、Zend Frameworkで提供されるコンポーネントについて表でまとめます。

Zend Frameworkで提供されるコンポーネント
コンポーネント概要
Zend_Acl軽量で柔軟なアクセス制御リスト(ACL)機能と権限管理機能
Zend_Auth認証のためのAPI
Zend_Cache任意のデータをキャッシュするためのコンポーネント
Zend_Configアプリケーションの設定データを使用するためのコンポーネント
Zend_Console_Getoptコマンドラインアプリケーションでのオプション・引数処理関連コンポーネント
Zend_ControllerMVCシステムの中心で「コントローラ」の部分
Zend_CurrencyI18N機能の中核となるコンポーネント
Zend_Date日付や時刻を操作するためのAPI
Zend_DbSQLデータベースアクセス関連コンポーネント
Zend_Debugデバッグ関連コンポーネント
Zend_Exception例外クラス関連コンポーネント
Zend_FeedRSSやAtomのフィード関連コンポーネント
Zend_Filterデータのフィルタリングに必要となる一般的な機能を提供
Zend_Filter_Inputフィルタやバリデータなど入力値検証関連コンポーネント
Zend_GdataGoogle DataにPHPからアクセスするためのコンポーネント
Zend_HttpHTTPリクエスト関連コンポーネント
Zend_JsonJSON形式を扱うための便利なメソッドを提供
Zend_Loaderファイルを動的に読み込むためのメソッドを提供
Zend_Localeロケール処理関連コンポーネント
Zend_Logログ出力用の汎用コンポーネント
Zend_Mailメールを作成・送信するための一般的な機能を提供
Zend_Measure計測値の単位変換や計算を行うためのパッケージ
Zend_Memoryメモリ管理コンポーネント
Zend_MimeマルチパートMIMEメッセージを処理するためのサポートクラス
Zend_PdfPDF操作エンジン
Zend_Registryアプリケーション用のレジストリ関連コンポーネント
Zend_RestREST Webサービス利用関連コンポーネント
Zend_Search_Lucene汎用的なテキスト検索エンジン
Zend_Server_Reflectionサーバクラス群で関数やクラスの内容を知るための標準的な仕組みを提供
Zend_Service_AkismetAkismet APIのクライアント機能を提供
Zend_Service_AmazonAmazon Webサービスを使用するためのシンプルなAPI
Zend_Service_AudioscrobblerAudioscrobbler REST Webサービスを使用するためのシンプルなAPI
Zend_Service_Deliciousdel.icio.usのXMLおよびJSON Webサービスを使用するためのシンプルなAPI
Zend_Service_FlickrFlickr のREST Web Serviceを使用するためのシンプルなAPI
Zend_Service_SimpyソーシャルブックマークサービスであるSimpy用のフリーなREST APIの軽量なラッパー
Zend_Service_StrikeIronStrikeIron Webサービス用のPHP5クライアント
Zend_Service_YahooさまざまなYahoo! REST API群を使用するための単純なAPI
Zend_Sessionセッションデータ管理関連コンポーネント
Zend_Translate多言語対応アプリケーションを作成するためのパッケージ
Zend_UriURIsの操作および検証を行うためのコンポーネント
Zend_Validate一般的に必要となるバリデータを提供
Zend_VersionZend Framework のバージョン管理関連コンポーネント
Zend_ViewMVCパターンにおける 「ビュー」として働くクラス
Zend_XmlRpcXML-RPCサービス関連コンポーネント

使いやすいライセンスで、企業の使用にも安心

 Zend FrameworkではBSDライセンスを採用しています。これは著作権と免責事項の表示をしていれば改変や再利用が自由というもので、さらに改変したコードを非公開にできるため、商用利用しやすいライセンスとなっています(他でよく採用されているGPLライセンスは、改変したものを再配布する際にもそのコードをGPLライセンスに基づいて公開することが義務付けられているために、商用としては使いにくいものとなっています)。

 また、Zend FrameworkソースのコントリビューターはCLA(Contributor License Agreement)に署名することになっています。これにより、コントリビューターが開発したコードにおいてその著作権が守られると同時に、Zend Technologies社にそのコードをZend Frameworkで使用するための著作権ライセンスが提供されることになります。

その他の特長

  • 最新のWeb開発フィーチャーをサポート
  • JSONを通したAJAXサポート
  • 検索機能
  • シンジケーション
  • Webサービスの利用
  • 高品質のオブジェクト指向PHP5クラスライブラリ

 最新のWebフィーチャーも利用できるようになっています。Ajaxや検索機能はもちろんのこと、Yahoo!やGoogle、AmazonといったWebサービスを利用するためのAPIもコンポーネントとして提供されています。

 Zend Frameworkの構造は、現在メジャーなPHPフレームワークであるsymfonyなどに比べるとはるかにシンプルであることから、幅広い機能を提供しながら習得が比較的楽であり、動作も高速です。

 例えば、symfonyではその規模にかかわらず開発するアプリごとに「プロジェクト」「アプリケーション」「モジュール」が設けられ、自動生成機能や設定ファイル群が非常によく整備されている反面、動作は重くなりがちなど、他のライブラリが利用しづらい面もありました。

 一方、Zend Frameworkはこれまで開発してきた既存のPHPコードも活用しやすいですし、他のライブラリとの併用も可能です。また本家開発のフレームワークであることから、その質/信頼性もメリットの一つとなっています。本家ドキュメントを始めとした日本語情報も充実してきました。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2008/02/06 19:01 動作確認ファイルをindex.phpに訂正致しました(.htaccessがある為)

著者プロフィール

  • WINGSプロジェクト 川北 季(カワキタ ミノル)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:Zend Framework入門

もっと読む

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5