ZendFramework入門・その1 メッセージを表示するアプリケーションを作ってみる
2007-08-29


はじめの一歩 - メッセージを表示してみる

前回の準備編でZend Frameworkの環境は整ったので、ものすごく簡単なアプリケーションから作ってみます。アプリケーションルートを「zf1」とします。

ディレクトリ構成

まずはディレクトリ構成。ドキュメントルート直下にフォルダ「zf1」を作成し、その下に「application」を作成します。さらに「application」下に「controllers」「views」を作成、「views」下に「index」を作成してください(結構面倒くさいでしょ?)。フォルダの名前に注意してください。特に「views」は、暗黙で参照される名前ですので、末尾の「s」が抜けていたりなどスペルミスがあるといきなり「ファイルが見つからない」エラーになってしまいます。

※:2014-04-08 説明文中の「applications」を「application」に修正しました。コメントでのご指摘、ありがとうございました。

ドキュメントルートからのツリーは以下のようになります。

index.phpを作成する

まずはURLリライトで必ず呼び出されるようにする「index.php」を作成します。このスクリプトがすべてのリクエストを処理することになります。

zf1の下に以下の内容でindex.phpを作成してください。

<?php
// エラーを表示するようにしておく
ini_set( 'display_errors', 1 );

// フロントコントローラをrequire
require_once 'Zend/Controller/Front.php';

// ルーティング&ディスパッチ開始
Zend_Controller_Front::run( './application/controllers' );

index.php
ここで行っているのは、以下の3つの処理です。

フロントコントローラ?

いきなり、あたりまえのように「フロントコントローラ」と言われてもなんのことかわからないかも知れませんので、簡単に説明します。

Zend Frameworkのリクエスト処理は、「フロントコントローラがリクエストを受け付けて、ルータに行き先(ディスパッチ先)を決めさせ、決定した行き先(アクションコントローラ)へディスパッチャを介して処理を委譲する」という流れになります。さらに用語が増えていますが^^;、順次解説していきますので、とりあえずは気にせず「こんな用語があるんだ」程度に考えていてください。

この「フロントコントローラ」が、コード中に記述されている「Zend_Controller_Front」で、このクラスは「Zend/Controller/Front.php」で定義されています。

命名規則

こうしてクラス名とファイル名を並べてみるとちょっとしたことに気づくかもしれません。Zend Frameworkのクラスとそれを定義するファイル名は単純なルールで決められています。

フロントコントローラ「Zend_Controller_Front」のアンダースコアをパス区切りに置き換え、末尾に「.php」を補うと、インクルードパスを基点にしたファイルパスになります。当然ファイルパスのパスセパレータをアンダースコアに置き換えて「.php」を取り除くとクラス名になります。

もう少し例を見てみましょう。ここではまだ使用しませんが、データベースのテーブルを取り扱うための「Zend_Db_Table」という抽象クラスがありますが、これは「Zend/Db/Table.php」で定義されています。さらにこれの派生元になっている「Zend_Db_Table_Abstract」抽象クラスは「Zend/Db/Table/Abstract.php」で定義されています。

これらのルールを把握していれば、あるクラスを使用するためにrequireしなければならないファイルパスがすぐわかると思います。このルールを適用するために、


続きを読む

[PHP]
[Zend Framework]
[Zend Framework 入門]

コメント(全4件)
コメントをする


記事を書く
powered by ASAHIネット