Zend Framework チュートリアル その2 – アプリケーションの作成開始
アプリケーションの作成開始
全ての部品が揃ったので、Zend Framework アプリケーションを作りはじめます。我々はこれからCDコレクションを表示する非常に簡単な在庫システムを構築していきます。 メインページはコレクション一覧を表示して、CDを追加、編集、削除が出来るようにします。下のような非常にシンプルなスキーマを使ったデータベースにリストを格納していきます。
| Field name | Type | Null? | Notes |
|---|---|---|---|
| id | integer | NO | Primary key, autoincrement |
| artist | varchar(100) | NO | |
| title | varchar(100) | NO |
以下のページが必要です。
| ホームページ | アルバム一覧を表示して、編集、削除のリンクがある。アルバムを新規に追加するリンクも用意する。 |
| 新規アルバムの追加 | このページは新規アルバムを追加するフォームを表示します。 |
| アルバムの編集 | このページはアルバムを編集するフォームを表示します。 |
| アルバムの削除 | このページはアルバムを削除するかの確認画面を表示し、削除を行います。 |
プロジェクトの作成
ターミナルかコマンドプロンプトを開いて、cdコマンドでウェブサーバのルートディレクトリに移動します。このディレクトリにファイル作成・読み込み権限があることを確認して、以下をタイプ
zf create project zf-tutorial
ZF tool は zf-tutorial というディレクトリを作成し、推奨するディレクトリ構造で構成をします。
このディレクトリ構造はApacheの設定をあなたが把握していることを前提としています。そのため、ウェブルートディレクトリの外に大半のファイルを持つことが出来ます。以下のようなファイルとディレクトリが見つかるはずです。

(隠しファイルである.htaccess ファイルが public/ にあります。)
application/ ディレクトリにはこのウェブサイトのソースコードが存在しています。見ての通り、アプリケーションのモデル、ビュー、コントローラのファイルは別々のディレクトリにあります。
public/ ディレクトリはウェブサイトの公開ディレクトリです。つまり、アプリケーションのurlは http://localhost/zf-tutorial/public/ となります。アプリケーションのファイルのほとんどはApacheから直接アクセスできません。それ故に、よりセキュアになります。
Note:
実際のウェブサイトでは、ウェブサイトのバーチャルホストを作成し、publicディレクトリにドキュメントルートを設定します。例えば、下のようにすれば zf-tutorial.localhost というバーチャルホストを作成できます。
<VirtualHost *:80>
ServerName zf-tutorial.localhost
DocumentRoot /var/www/html/zf-tutorial/public
<Directory "/var/www/html/zf-tutorial/public">
AllowOverride All
</Directory>
</VirtualHost>このサイトは http://zf-tutorial.localhost/ でアクセスできるようになります(/etc/hosts か c\windows\system32\drivers\etc\hosts ファイルで zf-tutorial.localhost が 127.0.0.1 にマップされていることを確認してください )。このチュートリアルではこれを行いませんが、テスト用のサブディレクトリを使うくらい簡単なことです。
画像、JavaScript、CSSファイルはpublicディレクトリ下の個別のディレクトリに配置します。ダウンロードしたZend Frameworkのファイルは liblary/ ディレクトリに配置されます。別のライブラリを使う必要がある場合にもこのディレクトリに配置します。
ダウンロードしたアーカイブ(ZendFramework-1.9.0.zip)から library/Zend/ を zf-tutorial/library/ にコピーします。zf-tutorial/library/ は Zend/ サブディレクトリを含むことになります。
上手くできたかどうか、 http://localhost/zftutorial/public をブラウザで開いてテストします。このように表示されるはずです。

ブートストラッピングの背景
Zend Frameworkのコントローラはフロントコントローラパターン(デザインパターン)を使っており、全リクエストはindex.phpファイル一枚を通過します。 これにより、アプリケーションを動作させる環境を正しくセットアップするのを保障します(いわゆるブートストラッピング)。これは、Zend_Tool によって生成されたzf-tutorial/public ディレクトリ内の .htaccess ファイルを使って行います。 この .htaccess ファイルは、これもまた Zend_Tool によって生成された public/index.phpに全リクエストをリダイレクトさせるためのものです。
index.phpファイルはアプリケーションの入口です。アプリケーションの初期化をするためにZend_Applicationのインスタンスを生成し、起動をするために使用します。
このファイルには2つの定数: APPLICATION_PATH と APPLICATION_ENV が定義されています。それぞれ application/ ディレクトリとアプリケーションの環境・モードを定義しています。
Zend_Applicationコンポーネントはアプリケーションの起動に使われ、設定ファイル: application/configs/application.ini のディレクティブが設定されます。 このファイルもZend_Toolにより自動で生成されます。 Zend_Application_Bootstrap_Bootstrapを継承したBootstrapクラスがapplication/Bootstrap.phpにあります。このクラスは起動に必要なコードを実行するために使います。
application.iniファイルの編集
Zend_Toolは立派なデフォルト設定ファイルを用意してくれるけれども、我々は自身のアプリケーションに固有の項目を追加する必要があります。
phpSettings.date.timezone = "UTC"
を[production]セクション内のphpSettingsの設定値の最後に追加します。言うまでもなく、あなたにとって適切なタイムゾーンを設定しましょう。
[訳者注]日本ではタイムゾーンの設定は下記を使用します
phpSettings.date.timezone = "Asia/Tokyo"
autoloadingを追加
アプリケーションディレクトリ内にあるモデルやフォームのようなリソースを自動的にロードできるようにオートローダを作成します。Zend_Application_Module_Autoloaderクラスを使ってこれを行います。Bootstrapクラス内に実装します。太字の部分が追加するコードです。
application/Bootstrap.php
<?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initAutoload() { $moduleLoader = new Zend_Application_Module_Autoloader(array( 'namespace' => '', 'basePath' => APPLICATION_PATH)); return $moduleLoader; } }
_initから始まるメソッドはZend_Applicationによって自動的にコールされます。 メソッド名の残りの部分はあなたが任意につけられます。モジュールオートローダーは、下の表のようにapplication/ 内の正しいディレクトリで正しいプレフィックスをつけることでクラスを自動的にロードしてくれます。
| Directory | Prefix | Example |
|---|---|---|
| api | Api_ | Api_Rest |
| forms | Form_ | Form_Login |
| models | Model_ | Model_News |
| models/DbTable | Model_DbTable_ | Model_DbTable_News |
| plugins | Plugins_ | Plugin_ |
それでは、アプリケーションに具体的なコードを追加していきます。
次のページ:: Zend Framework チュートリアル その3 – アプリケーションの具体的なコード,コントローラのセットアップ,データベース,モデル
目次
- Zend Framework チュートリアル - Getting Started with Zend Framework
- Zend Framework チュートリアル その1 - 要件,チュートリアルの条件,フレームワークの取得,Zend_Tool
- Zend Framework チュートリアル その2 - アプリケーションの作成開始
- Zend Framework チュートリアル その3 - アプリケーションの具体的なコード,コントローラのセットアップ,データベース,モデル
- Zend Framework チュートリアル その4 - レイアウトとビュー
- Zend Framework チュートリアル その5 - アルバムの一覧表示,新規追加,編集,削除,最後に