ホームページ バックエンド開発 PHPチュートリアル Yii ソースコード解釈 - Service Locator (Service Locator)

Yii ソースコード解釈 - Service Locator (Service Locator)

Jul 29, 2016 am 08:57 AM
component private

SL は分離できるように設計されており、サービスベースおよびコンポーネントベースのアプリケーションに非常に適しています。

Service Locator は実行時リンカーとして機能し、クラスに変更を加えることなく、実行時にクラスによって選択されたサービスを動的に変更できます。

クラスは、実行時に必要なサービスを増加、減少、または置換することを目的としており、それによってある程度の最適化を達成できます。

サービスプロバイダーとサービスユーザーの完全な分離を実現し、フレームワーク全体での独立したテストとコードの再利用を促進します。 Yii の

基本機能

SL は、yiidiServiceLocator

<code>class ServiceLocator extends Component{
    // 用于缓存服务、组件等的实例
    private $_components = [];
    
    // 保存服务和组件的定义,通常为配置数组,可以用来创建具体的实例
    private $_definitions = [];
    
    // 重载了getter, 使得访问服务和组件与访问类的属性一样。
    // 保留了原来Component的getter所具有的功能
    public function __get($name){}
}</code>
ログイン後にコピー

データ構造によって実装されています

SL は、サービスとコンポーネントを登録するメソッドを提供します。

$_components は、SL 内のコンポーネントまたはサービスのインスタンスをキャッシュするために使用され、読み取りおよび書き込み可能な属性です。

参考

以上、Yii のソースコード - Service Locator (Service Locator) の解釈について、さまざまな側面を含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

インタビュアー: @Configuration と @Component の違い インタビュアー: @Configuration と @Component の違い Aug 15, 2023 pm 04:29 PM

@Configuration クラスで @Bean アノテーション付きメソッドを呼び出すと同じ例が返され、@Component クラスで @Bean アノテーション付きメソッドを呼び出すと新しいインスタンスが返されます。

Javaでプライベートとはどういう意味ですか Javaでプライベートとはどういう意味ですか Nov 24, 2022 pm 06:27 PM

Java では、プライベートは「プライベート」を意味し、クラス、プロパティ、メソッドを変更するために使用されるアクセス制御修飾子です。 private で変更されたクラス メンバーは、クラス自体のメソッドによってのみアクセスおよび変更でき、他のクラス (クラスのサブクラスを含む) からはアクセスおよび参照できません。したがって、private 修飾子は最高レベルの保護を持ちます。

vue3 がどのようにdefineAsyncComponent タグとコンポーネント タグを使用して動的レンダリング コンポーネントを実装するか vue3 がどのようにdefineAsyncComponent タグとコンポーネント タグを使用して動的レンダリング コンポーネントを実装するか May 12, 2023 pm 05:55 PM

1. コンポーネントの基本的な動的導入: 単純な動的導入とは、フロントエンドがどのコンポーネントを導入するかを認識し、複数のコンポーネントを親コンポーネントに導入しますが、レンダリングはしません。特定の条件が満たされた後、特定の時点でレンダリングされます。場所、指定されたコンポーネント。 import{reactive,ref,shallowReactive,onActivated,defineAsyncComponent,}from'vue';constcustomModal=defineAsyncComponent(()=>import('./modal/CustomM

mixin、extend、component、その他の API を使用して Vue でコンポーネントのカスタマイズを実装する場合のヒント mixin、extend、component、その他の API を使用して Vue でコンポーネントのカスタマイズを実装する場合のヒント Jun 25, 2023 pm 03:28 PM

Vue.js は、コンポーネントをカスタマイズするための多くの API を提供する人気のあるフロントエンド フレームワークです。この記事では、コンポーネントのカスタマイズのスキルを習得するのに役立つ、Vue の mixin、extend、コンポーネント、およびその他の API を紹介します。 Mixin Mixin は、Vue でコンポーネント コードを再利用する方法です。これにより、すでに記述されたコードを別のコンポーネントに再利用できるため、重複したコードを記述する必要性が減ります。たとえば、ミックスインを使用すると、複数のグループを結合できます。

Java関数のプライベートアクセス修飾子の詳細な説明 Java関数のプライベートアクセス修飾子の詳細な説明 Apr 25, 2024 pm 04:48 PM

Private は、関数へのアクセスをその関数が定義されているクラスのみに制限する Java アクセス修飾子です。これには、他のクラスでは関数にアクセスできないことが含まれます。この関数はサブクラスでもアクセスできません。

Java プログラムはさまざまなアクセス レベルを表示します Java プログラムはさまざまなアクセス レベルを表示します Aug 19, 2023 pm 10:09 PM

アクセス修飾子は、Java プログラミング言語の特定のクラス、インターフェイス、変数、メソッド、コンストラクター、データ メンバー、およびセッター メソッドの可視性の機能を設定するために使用されます。Java 環境では、さまざまな種類のアクセス修飾子があります。デフォルト - 関数を宣言すると、その関数は特定のパッケージでのみ表示されます。 Private - 関数を宣言すると、その関数は特定のクラスでのみ使用可能になります

反応のコンポーネントは何ですか? 反応のコンポーネントは何ですか? Dec 05, 2022 pm 05:54 PM

Reactにおけるコンポーネントとは中国語で「部品」を意味し、独立した機能を持ったUIコンポーネントをカプセル化したもので、表示するコンテンツを複数の独立した部分に分割し、その一つ一つをコンポーネントと呼びます。コンポーネントには 2 つの重要なものがあります。1 つはプロパティ、もう 1 つは状態です。コンポーネントのプロパティは親コンポーネントによって与えられ、子コンポーネントに対する親コンポーネントの要件を保存します。プロパティはコンポーネント内でアクセスできますが、変更できません。コンポーネントの状態は定義されて使用されます。コンポーネント自体による保存 コンポーネントの現在の状態 コンポーネントの状態は変更可能です。

React.component がエラーを報告した場合の対処方法 React.component がエラーを報告した場合の対処方法 Dec 20, 2022 am 10:49 AM

React.component エラーの解決策: 1. 対応する反応ファイルを開き、「class Counter extends Component {static propTypes = {...」ステートメントを探し、等号をコロンに変更します。 2. 「{」を変更します。 "presets": ["react", "es2015", "stage-0"]}" で十分です。

See all articles