0 follower

Yiiの試運転

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

1. Yiiのインストール

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

ヒント: YiiFrameworkのインストール先はどこでもかまいません。framework ディレクトリはすべてのフレームワークコードを含み、Yiiアプリケーションを配布する際に唯一必要となるディレクトリです。インストールした Yii を複数のアプリケーションから利用することが可能です。

特に pdo 拡張pdo_sqlite拡張 はこれから作成するブログアプリケーションで、SQLiteにアクセスするために必要となります。

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 にアクセスします。 三つの機能を持ったアプリケーションが表示されるでしょう。 ホームページ、コンタクトページ、そしてログインページです。

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

エントリスクリプト

We have an entry script filewhich has the following content: エントリスクリプト/wwwroot/blog/index.php で、以下のような内容です:

<?php
$yii='/wwwroot/framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';
 
// remove the following line when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);
 
require_once($yii);
Yii::createWebApplication($config)->run();

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

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

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

deny from all

他のウェブサーバについてはマニュアルを参照してください。

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

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

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