ホームページ >バックエンド開発 >PHPチュートリアル >YIIソースコード解析(2)、YIIソースコード解析_PHPチュートリアル

YIIソースコード解析(2)、YIIソースコード解析_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:12:001034ブラウズ

YII ソースコード分析 (2)、yii ソースコード分析

前回の記事では、yii のアプリケーションの作成から結果を画面に出力するまでのプロセスを簡単に分析しました。今回は、出力に焦点を当てて、もう少し複雑なものを実行します。これは単純な「hello world」行ではなく、ビュー層によって処理する必要があります。

まだデモ ディレクトリにありますが、今回はシンプルな推測ゲームである Hangman を選択します。古いルールは入り口から始めることです。

index.php:

リーリー

helloworld アプリケーションと比較すると、今回は main.php があり、main を開いてソース コードを確認します。 リーリー

今後の実際のプロジェクトでは設定ファイルを使用することが多いので、yii設定ファイル-main.phpについて理解しておく必要があると思います

'name'=>'これは通常、Web サイトのタイトルを定義します'。これは、index.php を開いたときに Web ページに表示されるタイトルです。

「defaultController」=>「これはデフォルトのコントローラです」。これは、index.php の背後にコントローラが指定されていない場合にシステムによって使用されるコントローラです。ここで指定しない場合、デフォルトは site

です。

'components'=>'これは、多次元配列で構成されたコンポーネントのパラメータです。 '特定のパラメータについては、yii マニュアルを参照してください。

Yii::createWebApplication($config)->run(); 前回詳しく分析しましたが、ここでは簡単に説明します。

CWebApplication.php -> CApplication.php -> __construct($config) :

リーリー

前回は設定プロセスがなかったので、$this->configure($config) は何もしませんでしたが、今回は設定パラメータがあるので、yii がどのような操作を行ったかを見てみましょう:

CApplication自体はconfigureメソッドを実装せず、CModule.php:

から継承されます。 リーリー

コードは非常にシンプルで、設定パラメータのキーをクラスの属性名として使用し、値をクラスの属性値として使用します。このプロセスが完了したら、CApplication で run メソッドを実行します。

リーリー

前に述べたように、ここでは $this->processRequest(); に注目してください。操作の結果、 $this->runController(''); が実行されます。 リーリー

URLはindex.phpであり、その後にパラメータがないため、main.phpで設定したゲームであるデフォルトのコントローラが使用されます。したがって、$controllerは、最後のFromソースを通じてcontrollers/gameController.phpと等しくなります。コード分​​析により、gameController.php に init メソッドがない場合、親クラスで定義されたデフォルトのメソッド (実際には空のメソッド) が使用されることがわかります。 リーリー

クラス GameController extends CController から、親クラスが CController であることがわかり、対応する run メソッドを見つけることができます。 リーリー

以前に解析されているもので、指定されていない場合はデフォルトのパラメータとなります。このときの $actionID は空で、actionID は gameController で定義されたデフォルトのアクションです。 public $defaultAction='play'; リーリー リーリー

非常に多くのプロセスを経た後は、Hello World のプロセスと似ています。最後の分析によると、ここに実装されていることがわかります

リーリー リーリー リーリー リーリー

$output=$this->renderPartial($view,$data,true); をエコーすると、この時点で $output がすでに最終結果を取得していることがわかります。対応するファイルは views/game/play.php

これが最終的にindex.phpに表示されるものです。このレンダリングは比較的単純なため、プログラムの処理は少なくなりますが、ソースコードを見るとわかるように、テーマなど多くの処理が行われています。今回はまずこれを分析してみます。おやすみ!

れーれー

http://www.bkjia.com/PHPjc/925548.html

www.bkjia.com

tru​​e

技術記事 YII ソースコード分析 (2) では、yii ソースコード分析に関する前回の記事で、アプリケーションの作成から結果を画面に出力するまでの yii のプロセスを簡単に分析しました。今回はもう少し複雑なことをやってみます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。