CakePHPでは bake と呼ばれるツールがあり、MVCモデルにおける各パートのベースモジュールを自動生成してくれるので、大変重宝するツールだ。Yiiにおいても用意してくれており、これまた大変便利である。このような作業を、スキャフォールディングと呼んでいる。
Yiiではサイトの骨格を、そのまま利用できるようなデザインを含んだコードを吐き出してくれる。次のコマンドを実行するだけで、図のような表示の動的サイトが簡単にできる。
framework> yiic.bat webapp \htdocs\test
さて、Webアプリケーションのプログラムやフレームワーク本体を、ストレージ上のどこに配置するかだが、自分は公開ディレクトリ以外に置くようにしている。Yii も CakePHP 同様、フレキシブルに設定できる。今回は以下の通りにした。
\ +- htdocs | +- test (index.php) | +- protected +- yii +framework (yiic.bat)
htdocs が公開ディレクトリで、yii\framework がフレームワーク本体。スキャフォールディングは、Windows用に用意された yiic.bat を利用して公開ディレクトリの下に test ディレクトリを作成し、そこを出力先とした。
これで、上のコマンド実行後に「http://www.example.com/test/」をブラウズすると、上のようなサイトが表示される。さて、スキャフォールディングで出力されたアプリケーションのモジュール htdocs\test\protected も、公開ディレクトリから yii のサブディレクトリ yii\blog に移してしまおう。
これで公開ディレクトリに残ったのは、test\index.php だけとなる。index.php では、フレームワークとアプリケーションの設定ファイルパスを指定する必要がある。そこで、次のようにそれぞれ変更する。
$yii = realpath('../../yii/framework/yii.php'); $config = realpath('../../yii/blog/config/main.php');
これで、実際のWebサーバー上での配置を含めた環境が決まった。
(yii-1.1.0.r1700)