前回の記事では、アプリケーションの作成から結果を画面に出力するまでの Yii のプロセスを簡単に分析しました。今回は、出力に焦点を当てて、もう少し複雑なものを実行します。これは単純な「hello world」行ではなく、ビュー層によって処理する必要があります。
まだデモ ディレクトリにありますが、今回はシンプルな推測ゲームである Hangman を選択します。古いルールは入り口から始めることです。
index.php:
helloworld アプリケーションと比較すると、今回は main.php があり、main を開いてソース コードを確認します。
リーリー'name'=>'これは通常、Web サイトのタイトルを定義します'。これは、index.php を開いたときに Web ページに表示されるタイトルです。
「defaultController」=>「これはデフォルトのコントローラです」。これは、index.php の背後にコントローラが指定されていない場合にシステムによって使用されるコントローラです。ここで指定しない場合、デフォルトは site
です。
'components'=>'これは、多次元配列で構成されたコンポーネントのパラメータです。 '特定のパラメータについては、yii マニュアルを参照してください。Yii::createWebApplication($config)->run(); 前回詳しく分析しましたが、ここでは簡単に説明します。
CWebApplication.php -> CApplication.php -> __construct($config) :
リーリー
CApplication 自体はconfigureメソッドを実装しませんが、CModule.phpから継承します:
リーリー
リーリー
URLはindex.phpであり、その後にパラメータがないため、main.phpで設定したゲームであるデフォルトのコントローラが使用されます。したがって、$controllerは、最後のFromソースを通じてcontrollers/gameController.phpと等しくなります。コード分析により、gameController.php に init メソッドがない場合、親クラスで定義されたデフォルトのメソッド (実際には空のメソッド) が使用されることがわかります。 リーリー
以前に解析されているもので、指定されていない場合はデフォルトのパラメータとなります。このときの $actionID は空で、actionID は gameController で定義されたデフォルトのアクションです。 public $defaultAction='play'; リーリー
リーリー
リーリー
リーリー$output=$this->renderPartial($view,$data,true); をエコーすると、この時点で $output がすでに最終結果を取得していることがわかります。対応するファイルは views/game/play.php