このセクションでは、出発点となるスケルトンアプリケーションを作る方法を解説します。
説明を簡単にするために、ウェブサーバのドキュメントルートを /wwwroot
であると仮定し、対応するURLを http://www.example.com/
であるとします。
まずはじめに Yii Framework をインストールします。
Yiiのリリースファイル(バージョン 1.0.3 以上)をwww.yiiframework.comから取得し、
/wwwroot/yii
ディレクトリに解凍します。
/wwwroot/yii/frameworkというディレクトリが存在することを確認してください。
ヒント: YiiFrameworkのインストール先はどこでもかまいません。
framework
ディレクトリはすべてのフレームワークコードを含み、Yiiアプリケーションを配布する際に唯一必要となるディレクトリです。インストールした Yii を複数のアプリケーションから利用することが可能です。
特に pdo 拡張
と pdo_sqlite拡張
はこれから作成するブログアプリケーションで、SQLiteにアクセスするために必要となります。
次に、 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
で、以下のような内容です:
$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
他のウェブサーバについてはマニュアルを参照してください。
Yiiがどのように動くか、理解するのを助けるために、ユーザーがコンタクトページにアクセスした際に、スケルトンアプリケーションでの主なワークフローを解説します:
/wwwroot/blog/protected/config/main.php
で指定された初期プロパティ値が設定されます。site
とコントローラと contact
アクションに解決されます。SiteController
インスタンスとして、site
コントローラを作成し、実行します。SiteController
インスタンスは自身の actionContact()
メソッドを呼ぶことで、 contact
アクションを実行します。actionContact
メソッドは contact
という名前のビューをレンダリングし、ウェブユーザに提示します。内部的には、ビューファイル /wwwroot/blog/protected/views/site/contact.php
を読み込み、レイアウトファイル /wwwroot/blog/protected/views/layouts/main.php
にその結果を埋め込むことで、達成されます。
Signup or Login in order to comment.