目次
Yii フレームワークコンポーネントとイベント動作管理、yii 動作管理の詳細な説明
ホームページ バックエンド開発 PHPチュートリアル Yii フレームワークコンポーネントとイベント動作管理の詳細な説明、yii 動作管理_PHP チュートリアル

Yii フレームワークコンポーネントとイベント動作管理の詳細な説明、yii 動作管理_PHP チュートリアル

Jul 12, 2016 am 08:50 AM
yii イベント コンポーネント

Yii フレームワークコンポーネントとイベント動作管理、yii 動作管理の詳細な説明

この記事では、Yii フレームワークコンポーネントとイベント動作管理について例を示して説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

Yii は、大規模な Web アプリケーションを開発するためのコンポーネントベースの高性能 PHP フレームワークです。 CComponent はほぼすべてのクラスの基本クラスであり、コンポーネントとイベントの管理を制御します。そのメソッドとプロパティは次のとおりです。イベント (evnet、一部の場所ではフックと呼ばれます) と $_m 配列を格納します。行動(行動)を保存します。

コンポーネント管理

YII は純粋な oop フレームワークであり、CComponent は PHP のマジック メソッド __get() および __set() を使用してプロパティにアクセスし、設定しますが、これらのメソッドはあまり役に立ちません。 __get() を使用して以下を説明します

リーリー

CComponent またはそのサブクラスのオブジェクト インスタンス $obj->name の場合、 __get($name) メソッド:

1. まず、インスタンスに getName() メソッドがあるかどうかを確認し、存在しない場合はステップ 2 を実行します。

2. on で始まるイベントは、通常、CComponent サブクラスで予約されたイベントであり、method_exists($this,$name) を使用して、名前にクラスのインスタンスがあるかどうかを判断します。 、存在する場合はイベントを返し、存在しない場合はステップ 3 に進みます

3. name が動作配列に存在する場合は、変更された動作を返します。存在しない場合は、ステップ 4 を実行します。

4. 動作配列を走査します。配列内の動作は CBehavior サブクラスのインスタンスであるため、再帰メソッドを使用して動作内のメソッドを取得します

5. 例外がスローされました: 要求された属性は存在しません。

CComponent のサブクラスでは __get() メソッドをオーバーロードすることができます。例えば、CModule にコンポーネント取得の判定を追加します。これにより問題が発生します。属性とコンポーネントの名前を同じにしないことが最善です。プログラムは最初にコンポーネントをロードし、必要な属性を取得できない可能性があるためです。名前を同じにする必要がある場合は、ゲッターを使用する必要があります。属性を取得します。

リーリー

コンポーネントのロードと作成に関して、最後の YII フレームワーク分析メモ 1: YII 実行プロセスのポイント 3 に質問があります: フレームワークのコア コンポーネントを登録するとき、一度に多くのコンポーネントをロードするとパフォーマンスに影響しますか?実際にはそうではありません。登録するときは、コンポーネントとそれに対応する構成をキーと値のペアの形式で配列に保存するだけです (プリロードされたものを除く)。これを使用するときは、createComponent( を使用して) コンポーネントを作成できます。 YIIBase ) メソッドが作成され、初期化されます。 CModule またはその子孫 (CWebApplication など) を通じて __get() または getComponent() を呼び出してコンポーネントを取得する場合、CModule は $_components 配列を通じてオブジェクト プールを確立し、各コンポーネントがリクエスト内で 1 回だけインスタンス化されるようにします。

イベント行動管理

イベントは、コンポーネントの拡張機能またはプラグインに相当します。コンポーネント内で予約されたフックは、コンポーネントの内部呼び出しとコンポーネントの外部制御を実現するために使用されます。 CComponent サブクラスでは、js の onclick や onchange などと同様に、on で始まるメソッドをイベントとして定義できます。実際、原理は似ています。すべてのイベントは、CComponent と同じファイル内の CEvent のサブクラスです。

リーリー

たとえば、CApplication で run() メソッドを呼び出す場合、リクエストを処理する前に、まず onBeginRequest イベントのハンドルが外部に渡されるかどうかを確認します。そうである場合は、onBeginRequest($event) を通じて CComponent の raiseEvent() メソッドを呼び出します。ハンドル内の関数またはメソッドを実行するメソッド。

Behavior はイベントのアップグレードされたバージョンであり、すべての動作は CBehavior のサブクラスです。上記の __get() メソッド分析のステップ 4 を分析すると、動作の役割はコンポーネントの特性 (プロパティ、メソッド、イベント、動作など) を完全に拡張することであり、これによりプログラム開発がより柔軟になることがわかります。

ビヘイビアーのもう 1 つの機能は、同様のイベント ハンドルをまとめることです。ビヘイビアーは、attach() メソッドを実行するときに、events() メソッドで返されたイベント ハンドルをバインドします。これにより、アスペクトの管理と拡張の目的が達成されます。たとえば、CModelBehavior はモデル関連のイベントを収集して、モデルに動作を追加する必要があるときにそのサブクラスの再利用を容易にします。

追記:

ここの編集者は、将来の PHP プログラミングで組版をコード化するのに役立つように、この Web サイトで PHP の書式設定と美化組版ツールを推奨しています:

php コードのオンライン書式設定および美化ツール: http://tools.jb51.net/code/phpformat さらに Yii 関連のコンテンツに興味のある読者は、このサイトの特別トピックをチェックしてください: 「Yii フレームワーク入門と一般的なテクニックの概要」、「優れた PHP 開発フレームワークの概要」、「Yii を始めるための基本チュートリアル」 Smartyテンプレート』、『PHP日時の使い方まとめ』、『phpオブジェクト指向プログラミング入門チュートリアル』、『php文字列(ストリング)の使い方まとめ』、『php+mysqlデータベース操作入門チュートリアル』、『php共通データベース操作』スキルまとめ』

この記事が皆さんの Yii フレームワークに基づく PHP プログラムの設計に役立つことを願っています。

www.bkjia.com本当http://www.bkjia.com/PHPjc/1133126.html技術記事 Yii フレームワーク コンポーネントとイベント動作管理の詳細な説明 Yii フレームワーク コンポーネントとイベント動作管理について例を示して説明します。参考のために皆さんと共有してください。詳細は次のとおりです: Yii は...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Windows 10 旧バージョンコンポーネント DirectPlay のインストール方法 Windows 10 旧バージョンコンポーネント DirectPlay のインストール方法 Dec 28, 2023 pm 03:43 PM

win10で一部のゲームをプレイすると、画面がフリーズしたり画面がぼやけるなどの不具合が多くのユーザーに発生しますが、現時点ではダイレクトプレイ機能をオンにすることで問題を解決でき、機能の操作方法も非常に簡単です。 win10 の古いコンポーネントである Directplay をインストールする方法 1. 検索ボックスに「コントロール パネル」と入力して開きます 2. 表示方法として大きなアイコンを選択します 3. 「プログラムと機能」を見つけます 4. 左側をクリックして有効にするか、 Win 機能をオフにする 5. ここで古いバージョンを選択します チェックボックスをオンにするだけです

イベント ID 4660: オブジェクトが削除されました [修正] イベント ID 4660: オブジェクトが削除されました [修正] Jul 03, 2023 am 08:13 AM

一部の読者がイベント ID4660 に遭遇しました。何をすればよいかわからないことが多いため、このガイドで説明します。イベント ID 4660 は通常、オブジェクトが削除されたときにログに記録されるため、コンピューター上でイベント ID 4660 を修正する実際的な方法も検討します。イベントID4660とは何ですか?イベント ID 4660 は Active Directory 内のオブジェクトに関連しており、次のいずれかの要因によってトリガーされます。 オブジェクトの削除 – オブジェクトが Active Directory から削除されるたびに、イベント ID 4660 のセキュリティ イベントがログに記録されます。手動変更 – ユーザーまたは管理者がオブジェクトのアクセス許可を手動で変更すると、イベント ID 4660 が生成される場合があります。これは、権限設定の変更、アクセス レベルの変更、またはユーザーやグループの追加または削除を行うときに発生する可能性があります。

Vueを使用してカレンダーコンポーネントを実装するにはどうすればよいですか? Vueを使用してカレンダーコンポーネントを実装するにはどうすればよいですか? Jun 25, 2023 pm 01:28 PM

Vue は非常に人気のあるフロントエンド フレームワークであり、コンポーネント化、データ バインディング、イベント処理など、開発者が効率的で柔軟で保守が容易な Web アプリケーションを構築するのに役立つ多くのツールと機能を提供します。この記事では、Vueを使ってカレンダーコンポーネントを実装する方法を紹介します。 1. 要件の分析 まず、このカレンダー コンポーネントの要件を分析する必要があります。基本的なカレンダーには次の機能が必要です: 当月のカレンダー ページの表示、前月または翌月への切り替えのサポート、特定の日のクリックのサポート、

iPhone のロック画面で今後のカレンダーイベントを取得する iPhone のロック画面で今後のカレンダーイベントを取得する Dec 01, 2023 pm 02:21 PM

iOS 16 以降を実行している iPhone では、今後のカレンダー イベントをロック画面に直接表示できます。それがどのように行われるかを知るために読んでください。文字盤の複雑機構のおかげで、多くの Apple Watch ユーザーは、手首を一目見て次のカレンダーイベントを確認できることに慣れています。 iOS16 とロック画面ウィジェットの登場により、デバイスのロックを解除しなくても、同じカレンダーのイベント情報を iPhone で直接表示できるようになりました。カレンダー ロック画面ウィジェットには 2 つの種類があり、次に予定されているイベントの時間を追跡したり、イベント名とその時間を表示する大きなウィジェットを使用したりできます。ウィジェットの追加を開始するには、Face ID または Touch ID を使用して iPhone のロックを解除し、長押しします。

Angular コンポーネントとその表示プロパティ: 非ブロックのデフォルト値について Angular コンポーネントとその表示プロパティ: 非ブロックのデフォルト値について Mar 15, 2024 pm 04:51 PM

Angular フレームワークのコンポーネントのデフォルトの表示動作は、ブロックレベルの要素ではありません。この設計の選択により、コンポーネント スタイルのカプセル化が促進され、開発者が各コンポーネントの表示方法を意識的に定義することが促進されます。 CSS プロパティの表示を明示的に設定することで、Angular コンポーネントの表示を完全に制御して、目的のレイアウトと応答性を実現できます。

古いバージョンのwin10コンポーネントの設定を開く方法 古いバージョンのwin10コンポーネントの設定を開く方法 Dec 22, 2023 am 08:45 AM

Win10 の古いバージョンのコンポーネントは、デフォルトで閉じられていることが多いため、ユーザー自身が設定で有効にする必要があります。まず、設定を入力する必要があります。操作は非常に簡単です。以下の手順に従ってください。Win10 の古いバージョンはどこにありますか?バージョン コンポーネント? 開く 1. [スタート] をクリックし、[Win システム] をクリックします 2. クリックしてコントロール パネルに入ります 3. 次に、下のプログラムをクリックします 4. [Win 機能を有効または無効にする] をクリックします 5. ここで必要なものを選択できます開く

Vue コンポーネントの実践: ページング コンポーネントの開発 Vue コンポーネントの実践: ページング コンポーネントの開発 Nov 24, 2023 am 08:56 AM

Vue コンポーネントの実践: ページング コンポーネント開発の概要 Web アプリケーションでは、ページング機能は不可欠なコンポーネントです。優れたページング コンポーネントは、プレゼンテーションがシンプルかつ明確で、機能が豊富で、統合と使用が簡単である必要があります。この記事では、Vue.js フレームワークを使用して高度にカスタマイズ可能なページング コンポーネントを開発する方法を紹介します。 Vueコンポーネントを使った開発方法をコード例を通して詳しく解説します。テクノロジースタック Vue.js2.xJavaScript (ES6) HTML5 および CSS3 開発環境

Vue でコンポーネントの動的な読み込みと切り替えを処理する方法 Vue でコンポーネントの動的な読み込みと切り替えを処理する方法 Oct 15, 2023 pm 04:34 PM

Vue でのコンポーネントの動的な読み込みと切り替えの処理 Vue は、コンポーネントの動的な読み込みと切り替えを処理するためのさまざまな柔軟な関数を提供する人気のある JavaScript フレームワークです。この記事では、Vue でコンポーネントの動的な読み込みと切り替えを処理するいくつかの方法について説明し、具体的なコード例を示します。コンポーネントを動的にロードするとは、実行時に必要に応じてコンポーネントを動的にロードすることを意味します。これにより、関連するコンポーネントが必要な場合にのみ読み込まれるため、アプリケーションのパフォーマンスと読み込み速度が向上します。 Vue は async と awa を提供します

See all articles