WHAT'S NEW?
Loading...

Yii 1.1 | ブートストラップとデバッグ

今回はBootstrapとデバッグに関して書こうと思う。

チュートリアルでは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]
  1. // change the following paths if necessary  
  2. $yii=dirname(__FILE__).'/../framework/yii.php';  
  3. $config=dirname(__FILE__).'/protected/config/main.php';  
  4.   
  5. // remove the following lines when in production mode  
  6. defined('YII_DEBUG'or define('YII_DEBUG',true);  
  7. // specify how many levels of call stack should be shown in each log message  
  8. defined('YII_TRACE_LEVEL'or define('YII_TRACE_LEVEL',3);  
  9.   
  10. require_once($yii);  
  11. 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]
  1. 'log'=>array(  
  2.         'class'=>'CLogRouter',  
  3.         'routes'=>array(  
  4.             array(  
  5.                 'class'=>'ext.yii-debug-toolbar.YiiDebugToolbarRoute',  
  6.                 'ipFilters'=>array('*'),  
  7.             ),  
  8.         ),  
  9.     ),  
上記のように、logの設定を編集して保存する。

そしておもむろにブラウザで見てみるとこうなる。



オソロシヤ!!!


さて、今回はここまで。
次回はコンポーネントのネタなんかできればいいかなって思う。