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

WBOY
リリース: 2016-07-13 10:11:13
オリジナル
960 人が閲覧しました

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

yii プログラムの開始プロセスとページのレンダリング方法についてはすでに見てきました。私たちが今日分析したいのは、Yii がユーザーのリクエストをどのように処理するかということです。それがコントロールとアクションの部分です。

このプロセスを説明するために helloworld を例に挙げてみましょう。アドレスバーに http://localhost/study/yii/demos/helloworld/index.php と入力すると、ページに hello world が表示されます。

前の分析ではデフォルト値を使用しましたが、URL にパラメータがある場合、Yii はそれをどのように処理しますか?この質問を念頭に置いて、詳しく分析してみましょう。

CWebApplication には次のコード行があります:

リーリー

これは伝説のルートです、ちょっとゼリーじゃないですか?まずは getUrlManager がどれほど素晴らしいかを見てみましょう。

リーリー

これには再び関係を見つける必要があります。

リーリー

return $this->_components[$id]; を実行します。ID は渡された urlManager です。実際、ここからは urlManager クラスを直接見つけて parseUrl を確認するだけです。 リーリー

上記のコードから判断すると、URL に何かをアップロードしない場合は、「」を返すだけで済みます。そこで、パラメータをどのように渡すかという疑問が生じます。

リーリー リーリー

解決策はあります。一緒に害を与えましょう。 helloworld/index.php?r=abc

のようなパラメータを追加します

エラーが見つかりました。それは、abc コントローラーが存在しないことを意味します。それは、ことわざにあるように、男が悪くなければ、女は彼を愛さないでしょう。

helloworld/index.php?r=site に変更すると、hello world が表示されます。これは一体何でしょうか。理由は非常に簡単で、サイトコントローラーが定義されているからです。

リーリー

わかりました、これに異論はありませんが、actionIndex とは一体何ですか? Yii では、これをアクションと呼びます。 ?r=site/index と入力すると、アクションが「/」で区切られ、コントローラーの背後にあるパラメーターがキャプチャされます。表示するアクションをデバイスに追加します:

リーリー

?r=site/view にアクセスすると、「Hello View」という出力が表示されましたか?それは間違いなく真実です。私はあまり本を読んでいませんが、写真と真実があります。

私はサイトという名前を使用するのはまったく好きではありません。テストが私のお気に入りなので、それを試すために別のテスト コントローラーを構築しました。

鋭い目を持つ人は、アクションの書き方を見たはずです。これは一体何ですか?やってみて初めて、実は別の表現方法だということが分かりました。

ブログの例で確認コードを表示するために使用したことを覚えています:

リーリー

このコントローラーのアクションは依然としてアクション + ID の形式で単純であるため、サードパーティのビジネスを一元的に宣言するアクションのコレクションとして理解しています。

一体何?これは、設定ファイルから始める必要があります。

リーリー

urlFormat には path と get の 2 種類があります。main.php で指定されていない場合は、index.php?r=site/captcha の get メソッドになります。指定するとindex.php/site/captcha

のような感じになります

path はパスの形式であり、get は ? の形式であることも理解しやすいです。

ルーティングとコントローラーの部分についてはさらに説明すべきことがたくさんありますが、このセクションではこれで終わりです。

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

tru​​ehttp://www.bkjia.com/PHPjc/930706.html技術記事 YII ソース コード分析 (3)、yii ソース コード分析 yii プログラムを開始するプロセスとページをレンダリングする方法についてはすでに説明しました。今日分析したいのは、yii がどのような状態であるかということです...
関連ラベル:
yii
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート