目次
yii ソース コード分析 3、yii ソース コード分析
ホームページ バックエンド開発 PHPチュートリアル yii ソースコード分析 3、yii ソースコード分析_PHP チュートリアル

yii ソースコード分析 3、yii ソースコード分析_PHP チュートリアル

Jul 13, 2016 am 10:14 AM
yii

yii ソース コード分析 3、yii ソース コード分析

次のように指定してください: TheViper http://www.cnblogs.com/TheViper/

前回の記事ではCWebApplicationの¥route=$this->getUrlManager()->parseUrl($this->getRequest());と$route=controler/actionidの取得についてお話しました。

この記事では $this->runController ($route); について説明します

リーリー

$ca = $this->createController ($route)); createController の機能は、$route 内のコントローラーとアクションを分離し、コントローラー インスタンスを作成することです。

最後にコントローラーインスタンスとアクションIDを返します。

次に、CWebApplication の runController($route)、$controller->init(); に戻り、コントローラーの初期化時にこれを実行します。これは次のようにサブクラスで書き換える必要があります。 リーリー

このように、$this->db を使用して、VideoController の db コンポーネントを呼び出すことができます。

$controller->run ( $actionID ); Ccontroller に転送します。

リーリー

$this->createAction ( $actionID ); アクション インスタンスを作成します。

次に、 runActionWithFilters($action, $filters); filter() がない場合は、直接 runAction($action) します。

$action->runWithParams ( $this->getActionParams () ).$action は CInlineAction インスタンスです。

リーリー

Cアクション

リーリー

これら 2 つのクラスは非常に単純で、コントローラー クラスのアクション メソッドを実行するだけです。

filter() がある場合は、上記の runActionWithFilters($action, $filters) に戻り、CFilterChain::create ( $this, $action, $filters )->run ();

明らかに、フィルターがある場合は、アクション メソッドを実行する前にフィルター リストを設定する必要があります。

CFilterChain は、「application.filters.LoginFilter+upload_video」のような構成をフィルター チェーンに解析します。

フィルター チェーン内の各項目は、CInlineFilter または CFilter インスタンスです。

リーリー

'application.filters.LoginFilter+upload_video' この構成により、CFilter インスタンスが作成されます。

リーリー

次に、上記の CFilterChain::create ($this, $action, $filters)->run (); に run() があり、リクエストによって解析されたアクションが Upload_video の場合、yii は LoginFilter インスタンスを取り出します。

ログインフィルターなど

リーリー

内部にはプレフィックスとポストフィックスがあり、フィルターを有効にする必要があるアクション メソッドに対して、アクション メソッドの実行前と後に、それぞれ自己定義の preFilter メソッドと postFilter メソッドを実行することを意味します。

次に $filterChain->run (); ここで間違いを犯しやすいです。

実際、CFilterChain で run() を再度使用したところ、内部に $this->filterIndex++ があることに気付きました。これは再帰に少し似ています。

フィルターがアクションをフィルターしたい場合は、次のように CFilter に移動し、$filterChain->run (); return CFilterChain、$this->filterIndex++ を実行し、$filterChain->run (); を続けます。 。 。 。 。 。

私の「application.filters.LoginFilter+upload_video」では、upload_video アクションのみがフィルタリングされるため、CFilterChain が返されると、$this->filterIndex は 1 になり、フィルタ リストにはフィルタ インスタンスが 1 つだけ含まれるため、今回は$this->controller->runAction ( $this->action ); に進みます。これは、フィルターが設定されていない場合の $this->runAction ( $action ); と同じです。

フィルターの解析後はデータ操作などがあり、最後にレンダリングビューのrender()です。これは単純すぎます。extract($data) を実行して、ビュー ファイルをインクルードします。

別のコントローラー/アクションにジャンプする forward() メソッドもあります。本質は、CWebApplication の runController に戻り、上記の分析プロセスを繰り返すことです。

最後にトリミングされた yii http://files.cnblogs.com/TheViper/framework.zip を添付します

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

tru​​ehttp://www.bkjia.com/PHPjc/909747.html技術記事 yii ソース コード分析 3、yii ソース コード分析の再版を示してください: TheViperhttp://www.cnblogs.com/TheViper/ 前回の記事では、¥route=$this-getUrlManager ()-parseUrl ($this-ge. ..) と記載されています。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP フレームワーク Yii を使用して可用性の高いクラウド バックアップ システムを開発する方法 PHP フレームワーク Yii を使用して可用性の高いクラウド バックアップ システムを開発する方法 Jun 27, 2023 am 09:04 AM

クラウド コンピューティング テクノロジの継続的な発展により、データのバックアップはすべての企業が行う必要のあるものになりました。この文脈では、可用性の高いクラウド バックアップ システムを開発することが特に重要です。 PHP フレームワーク Yii は、開発者が高性能の Web アプリケーションを迅速に構築できる強力なフレームワークです。ここでは、Yii フレームワークを使用して可用性の高いクラウド バックアップ システムを開発する方法を紹介します。データベースモデルの設計 Yii フレームワークでは、データベースモデルは非常に重要な部分です。データ バックアップ システムには多くのテーブルとリレーションシップが必要なため、

Symfony と Yii2: 大規模な Web アプリケーションの開発にはどちらのフレームワークが適していますか? Symfony と Yii2: 大規模な Web アプリケーションの開発にはどちらのフレームワークが適していますか? Jun 19, 2023 am 10:57 AM

Web アプリケーションの需要が高まるにつれ、開発者が開発フレームワークを選択する選択肢はますます増えています。 PHP フレームワークとして人気のある Symfony と Yii2 は、どちらも強力な機能とパフォーマンスを備えていますが、大規模な Web アプリケーションを開発する必要がある場合、どちらのフレームワークがより適しているのでしょうか。次に、より良い選択を行うために、Symphony と Yii2 の比較分析を行います。基本概要 Symphony は、PHP で書かれたオープンソースの Web アプリケーション フレームワークであり、上に構築されています。

PHPでYii3フレームワークを使用するにはどうすればよいですか? PHPでYii3フレームワークを使用するにはどうすればよいですか? May 31, 2023 pm 10:42 PM

インターネットの発展に伴い、Web アプリケーション開発の需要もますます高まっています。開発者にとって、アプリケーションの開発には、開発効率を向上させる、安定性、効率性、強力なフレームワークが必要です。 Yii は、豊富な機能と優れたパフォーマンスを提供する、優れた高性能 PHP フレームワークです。 Yii3 は Yii フレームワークの次世代バージョンであり、Yii2 に基づいてパフォーマンスとコード品質をさらに最適化します。この記事では、Yii3 フレームワークを使用して PHP アプリケーションを開発する方法を紹介します。

Yii2 と Phalcon: グラフィック レンダリング アプリケーションの開発にはどちらのフレームワークが適していますか? Yii2 と Phalcon: グラフィック レンダリング アプリケーションの開発にはどちらのフレームワークが適していますか? Jun 19, 2023 am 08:09 AM

現在の情報化時代では、ビッグデータ、人工知能、クラウド コンピューティング、その他のテクノロジーが大手企業の焦点となっています。その中でも、高性能なグラフィックス処理技術として、グラフィックスカードレンダリング技術がますます注目を集めています。グラフィックス カード レンダリング テクノロジは、ゲーム開発、映画やテレビの特殊効果、エンジニアリング モデリングなどの分野で広く使用されています。開発者にとって、自分のプロジェクトに合ったフレームワークを選択することは非常に重要な決定です。現在の言語の中でも PHP は非常に動的な言語であり、Yii2、Ph などの優れた PHP フレームワークもいくつかあります。

Yii フレームワークでのデータクエリ: データに効率的にアクセスする Yii フレームワークでのデータクエリ: データに効率的にアクセスする Jun 21, 2023 am 11:22 AM

Yii フレームワークは、Web アプリケーション開発のプロセスを簡素化するための多数のツールとコンポーネントを提供するオープンソースの PHP Web アプリケーション フレームワークであり、その重要なコンポーネントの 1 つがデータ クエリです。 Yii フレームワークでは、SQL に似た構文を使用してデータベースにアクセスし、データを効率的にクエリおよび操作できます。 Yii フレームワークのクエリビルダーには主に次の種類があります: ActiveRecord クエリ、QueryBuilder クエリ、コマンド クエリ、独自の SQL クエリ

Yii2 プログラミングガイド: Cron サービスの実行方法 Yii2 プログラミングガイド: Cron サービスの実行方法 Sep 01, 2023 pm 11:21 PM

「Yii とは何ですか?」という質問がある場合は、私の以前のチュートリアル「Yii フレームワークの紹介」を参照してください。このチュートリアルでは、Yii の利点をレビューし、2014 年 10 月にリリースされた Yii 2.0 の新機能の概要を説明しています。うーん> この Yii2 によるプログラミング シリーズでは、読者に Yii2PHP フレームワークの使い方をガイドします。今日のチュートリアルでは、Yii のコンソール機能を活用して cron ジョブを実行する方法を共有します。以前、私はバックグラウンド タスクを実行するために cron ジョブで wget (Web アクセス可能な URL) を使用しました。これにより、セキュリティ上の懸念が生じ、パフォーマンス上の問題も発生します。 Security for Startup シリーズでリスクを軽減するいくつかの方法について説明しましたが、コンソール駆動のコマンドに移行したいと考えていました。

Yii2 と Symfony: API 開発にはどちらのフレームワークが優れていますか? Yii2 と Symfony: API 開発にはどちらのフレームワークが優れていますか? Jun 18, 2023 pm 11:00 PM

インターネットの急速な発展に伴い、API はさまざまなアプリケーション間でデータを交換する重要な方法になりました。したがって、保守が容易で効率的で安定した API フレームワークを開発することがますます重要になっています。 API フレームワークを選択する場合、Yii2 と Symfony の 2 つは開発者の間で人気のある選択肢です。では、どちらが API 開発に適しているのでしょうか?この記事では、これら 2 つのフレームワークを比較し、いくつかの結論を示します。 1. 基本的な紹介 Yii2 と Symfony は、開発に使用できる対応する拡張機能を備えた成熟した PHP フレームワークです。

PHP 開発: Yii2 と GrapeJS を使用してバックエンド CMS とフロントエンドのビジュアル編集を実装する PHP 開発: Yii2 と GrapeJS を使用してバックエンド CMS とフロントエンドのビジュアル編集を実装する Jun 15, 2023 pm 11:48 PM

現代のソフトウェア開発において、強力なコンテンツ管理システム (CMS) を構築することは簡単な作業ではありません。開発者は広範なスキルと経験を持っている必要があるだけでなく、機能とパフォーマンスを最適化するために最先端のテクノロジーとツールを使用する必要もあります。この記事では、2 つの人気のあるオープン ソース ソフトウェアである Yii2 と GrapeJS を使用して、バックエンド CMS とフロントエンドのビジュアル編集を実装する方法を紹介します。 Yii2 は、迅速に構築するための豊富なツールとコンポーネントを提供する人気のある PHPWeb フレームワークです。

See all articles