チュートリアルではMVCの概念とか、エントリスクリプト(ポイント)とかデバッグに関して書いてあるんだけど、今回は少し独自解釈した内容でお届けする予定。
まぁそれほど大してすごい内容ってわけじゃないけどね。
ところでブートストラップってのはもう知ってると思うけど、知らない人のために説明しておくよ。
簡単に言うと、一つのポイントにリクエストするだけで、そこから順にライブラリなどをたどって、最終的に元の場所にレスポンスとして戻ってくるという流れだ。直訳すると、自力で進む、的な内容になる。
エントリポイントとブートストラップ
『は?』って思った人もいると思うので具体的に説明すると、例えば今まではindex.phpがいろいろなライブラリを読み込んで、すべてindex.phpが主体となってリクエストをさばいてたとすると、ブートストラップ型は、index.phpが読み込まれたら次にlib/request.phjpが読み込まれ、次にlib/params.phpが読み込まれ、最終的にレンダリングに至るという、いわばリレーのような流れで処理するという感じだね。index.phpが主体ってわけじゃない。次から次にタスクを手渡しして次のファイルに進む。で、ブートストラップ型ってのはいわば主流というか、意識しないでも最近のフレームワークはそうなってるので、あんまり気にしないでいいと思う。結構どうでもいい。
もちろんYiiにもブートストラップ的なファイルがあり、そしてポイントとなるエントリスクリプトもある。
Yiiはまずindex.phpがアクセスされ、その中ではデバッグモードの設定、次にブートストラップであるyii.phpが読み込まれ、次にコンフィグファイル(main.php)が読み込まれてディスパッチされる、という、至ってシンプルな作りになってる。
エントリスクリプトを見てみよう。
[/testdrive/index.php]
// change the following paths if necessary $yii=dirname(__FILE__).'/../framework/yii.php'; $config=dirname(__FILE__).'/protected/config/main.php'; // remove the following lines when in production mode defined('YII_DEBUG') or define('YII_DEBUG',true); // specify how many levels of call stack should be shown in each log message defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3); require_once($yii); Yii::createWebApplication($config)->run();ここではデバッグモードとトレースレベルを設定してる。
YII_DEBUGがtrueになってるのを確認しておこう。なってなかったらそうしておこう。
デバッグしようぜ
さて、デバッグ。プログラムの8割はデバッグといってもいいだろう。たいてい正しく動かないので、なんで動かないのか調査し、修正する時間が8割というわけだ。
その時に役に立つツールがあって、例えるとCakePHPのDebugKitに含まれてるDebugToolbarみたいなものだ。
なんとそのような便利なものがYiiにもある。
その名も『yii-debug-toolbar』だ。
http://www.yiiframework.com/extension/yii-debug-toolbar/
これからこのブログでYiiの習得をするべく、長くて細い道を進むわけなので、こういった便利なものは最初に入れておこうと思う。
このリンク先のページがこの記事を書いている時から変更されてないのであれば、画面右側にダウンロードのリンクがあると思うので、最新版をデスクトップなどに落としておこう。
もちろん解凍しておくことも忘れずに。
解凍したらフォルダに入っている『yii-debug-toolbar』フォルダを『/testdrive/protected/extensions/』に置くだけだ。こりゃ楽だね。フォルダ階層には気をつけよう。
そして今度はこのツールバーを画面に表示させるべく、コンフィグファイルをいじろう。
[/testdrive/protected/config/main.php]
'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=>'ext.yii-debug-toolbar.YiiDebugToolbarRoute', 'ipFilters'=>array('*'), ), ), ),上記のように、logの設定を編集して保存する。
そしておもむろにブラウザで見てみるとこうなる。
オソロシヤ!!!
さて、今回はここまで。
次回はコンポーネントのネタなんかできればいいかなって思う。
facebook
twitter
google+
fb share