Yii の試運転

このセクションでは、出発点となるスケルトンアプリケーションを作る方法を解説します。 説明を簡単にするために、ウェブサーバのドキュメントルートを /wwwroot であると仮定し、対応する URL を http://www.example.com/ であるとします。

1. Yii のインストール

まずはじめに Yii Framework をインストールします。 Yii のリリースファイル(バージョン 1.1.1以上)を www.yiiframework.com から取得し、/wwwroot/yii ディレクトリに解凍します。 念のために、/wwwroot/yii/framework というディレクトリが存在することをもう一度確認してください。

ヒント: Yii framework はファイルシステムのどの場所にでもインストールすることが出来ます。ウェブフォルダ(ドキュメントルート)の下である必要はありません。Yii の framework ディレクトリはすべてのフレームワークコードを含んでおり、このディレクトリが Yii アプリケーションの配布に必要な唯一のフレームワークディレクトリです。インストールした単一の Yii を複数の Yii アプリケーションから利用することが可能です。

Yii をインストールした後、ブラウザのウィンドウを開いて、http://www.example.com/yii/requirements/index.php という URL にアクセスしてください。 そうすると、Yii のリリースに含まれる必要条件チェッカが表示されます。 ブログアプリケーションのためには、Yii が必要とする最小限の要求に加えて、SQLite データベースにアクセスするために、pdopdo_sqlite という二つの PHP 拡張が有効である必要があります。

2. スケルトンアプリケーションを作る

次に yiic ツールを使って /wwwroot/blog ディレクトリにスケルトンアプリケーションを作ります。 yiic ツールは Yii のリリースに含まれるコマンドラインツールです。 このツールを使ってコードを生成して、反復的コーディング作業をいくらか軽減することができます。

コマンドプロンプトを開き、以下のコマンドを実行します:

% /wwwroot/yii/framework/yiic webapp /wwwroot/blog
Create a Web application under '/wwwroot/blog'? [Yes|No]y
......

ヒント: 上で示したように yiic ツールを使うには、CLI PHP プログラムにパスが通っていなければなりません。そうでない場合は、次のようにすることでコマンドを利用できます:

path/to/php /wwwroot/yii/framework/yiic.php webapp /wwwroot/blog

作ったばかりのアプリケーションを試してみるには、ブラウザを開いて、http://www.example.com/blog/index.php にアクセスします。 スケルトンアプリケーションが完全に機能する4つのページを既にそなえているのが分る筈です。 すなわち、ホーム、アバウト(について)、コンタクト、ログイン という4つのページです。

以下では、このスケルトンアプリケーションの中身について簡単に説明します。

エントリスクリプト

まず、/wwwroot/blog/index.php という エントリスクリプト のファイルがあります。これは以下のような内容です:

<?php
$yii='/wwwroot/framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';
 
// 実運用モードでは次の行を削除します
defined('YII_DEBUG') or define('YII_DEBUG',true);
 
require_once($yii);
Yii::createWebApplication($config)->run();

これは、ウェブユーザが直接にアクセスできる唯一のスクリプトです。 エントリスクリプトは最初に Yii ブートストラップファイル yii.php を読み込みます。次に、指定した設定で アプリケーション インスタンスを作成して、アプリケーションを実行します。

ベースアプリケーションディレクトリ

次に、/wwwroot/blog/protected という アプリケーションベースディレクトリ があります。 これから作成するコードとデータのほとんどがこのディレクトリ以下に配置されます。 このディレクトリはウェブユーザのアクセスから保護されなければなりません。 Apache httpd ウェブサーバ を使っているなら、以下のような .htaccess ファイルをこのディレクトリに置きます:

deny from all

他のウェブサーバを使っている場合は、ウェブユーザのアクセスからディレクトリを保護する方法について、対応するマニュアルを参照してください。

3. アプリケーションのワークフロー

Yii がどのように動くかを理解しやすいように、ユーザがコンタクトページにアクセスした際のスケルトンアプリケーションの主なワークフローを解説します:

  1. ユーザが URL http://www.example.com/blog/index.php?r=site/contact をリクエストします。
  2. リクエストを処理するために、エントリスクリプト がウェブサーバにより実行されます。
  3. アプリケーション インスタンスが作成され、アプリケーション初期構成ファイル /wwwroot/blog/protected/config/main.php で指定された初期プロパティ値が設定されます。
  4. アプリケーションは コントローラコントローラアクション にリクエストを解決します。コンタクトページへのリクエストは、site コントローラと contact アクションに解決されます (/wwwroot/blog/protected/controllers/SiteController.php 中の actionContact メソッド)。
  5. アプリケーションは site コントローラを SiteController のインスタンスとして作成し、実行します。
  6. SiteController インスタンスは自身の actionContact() メソッドを呼ぶことで contact アクションを実行します。
  7. actionContact メソッドは contact という名前の ビュー をレンダリングし、ウェブユーザに提示します。内部的には、ビューファイル /wwwroot/blog/protected/views/site/contact.php を読み込み、レイアウト ファイル /wwwroot/blog/protected/views/layouts/column1.php にその結果を埋め込むことで、レンダリングが達成されます。
$Id$

Be the first person to leave a comment

Please to leave your comment.