亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ホームページ PHP ライブラリ その他の図書館 依存関係注入コンテナー用の PHP ライブラリ
依存関係注入コンテナー用の PHP ライブラリ
<?php
namespace Auryn;
class CachingReflector implements Reflector
{
    const CACHE_KEY_CLASSES = 'auryn.refls.classes.';
    const CACHE_KEY_CTORS = 'auryn.refls.ctors.';
    const CACHE_KEY_CTOR_PARAMS = 'auryn.refls.ctor-params.';
    const CACHE_KEY_FUNCS = 'auryn.refls.funcs.';
    const CACHE_KEY_METHODS = 'auryn.refls.methods.';
    private $reflector;
    private $cache;
    public function __construct(Reflector $reflector = null, ReflectionCache $cache = null)
    {
        $this->reflector = $reflector ?: new StandardReflector;
        $this->cache = $cache ?: new ReflectionCacheArray;
    }
    public function getClass($class)
    {
        $cacheKey = self::CACHE_KEY_CLASSES . strtolower($class);
        if (!$reflectionClass = $this->cache->fetch($cacheKey)) {
            $reflectionClass = new \ReflectionClass($class);
            $this->cache->store($cacheKey, $reflectionClass);
        }
        return $reflectionClass;
    }

私たちの考えは、アプリケーションが Foo クラスを使用するとき、Foo クラスを作成し、Foo クラスのメソッドを呼び出すことです。このメソッドが Bar クラスを必要とする場(chǎng)合、Bar クラスを作成し、Bar クラスを呼び出します。このメソッドには Bim クラスが必要であり、Bim クラスを作成してから他の作業(yè)を?qū)g行します。依存関係注入を使用する考え方は、アプリケーションが Foo クラスを使用し、Foo クラスには Bar クラスが必要で、Bar クラスには Bim クラスが必要です。次に、最初に Bim クラスを作成し、次に Bar クラスを作成して Bim を注入します。次に、 Foo クラスを作成し、 Bar クラスを挿入して、 Foo メソッドを呼び出し、 Foo が Bar メソッドを呼び出し、その後、他の作業(yè)を?qū)g行します。これは制御の反転パターンです。依存関係の制御は、呼び出しチェーンの先頭まで逆に行われます。このようにして、依存関係を完全に制御し、注入されたさまざまなオブジェクトを調(diào)整することでプログラムの動(dòng)作を制御できます。たとえば、Foo クラスは memcache を使用しますが、Foo クラスのコードを変更せずに代わりに redis を使用できます。

依存関係注入コンテナーの使用の背後にある考え方は、アプリケーションが Foo クラスを取得する必要がある場(chǎng)合、コンテナーから Foo クラスを取得し、コンテナーが Bim クラスを作成し、次に Bar クラスを作成して Bim を注入するというものです。次に、Foo クラスを作成し、それを Bim クラスに注入します。Bar インジェクション、アプリケーションは Foo メソッドを呼び出し、Foo は Bar メソッドを呼び出し、その後、他の作業(yè)を行います。つまり、コンテナはインスタンス化、依存関係の注入、依存関係の処理など。


免責(zé)事項(xiàng)

このサイトのすべてのリソースはネチズンによって提供されたもの、または主要なダウンロード サイトによって転載されたものです。ソフトウェアの整合性をご自身で確認(rèn)してください。このサイトのすべてのリソースは學(xué)習(xí)の參考のみを目的としています。商業(yè)目的で使用しないでください。そうでない場(chǎng)合は、すべての結(jié)果に対して責(zé)任を負(fù)うことになります。侵害がある場(chǎng)合は、削除するためにご連絡(luò)ください。連絡(luò)先情報(bào): admin@php.cn

関連記事

PHP Lazy オブジェクトを使用した PSR 互換の依存関係注入コンテナーの構(gòu)築 PHP Lazy オブジェクトを使用した PSR 互換の依存関係注入コンテナーの構(gòu)築

04 Jan 2025

PHP 8.4 での Lazy オブジェクトによる依存関係の注入の探索 最新の PHP の領(lǐng)域では、バージョン 8.4 のリリースで畫期的な機(jī)能である Lazy Objects が導(dǎo)入されました。これらのオブジェクトにより、絶対に必要になるまで初期化を延期する新しい方法が可能になります

PHPでの依存関係注射のベストプラクティス PHPでの依存関係注射のベストプラクティス

08 May 2025

依存関係注射(DI)を使用する理由は、コードのゆるい結(jié)合、テスト可能性、および保守性を促進(jìn)するためです。 1)コンストラクターを使用して依存関係を注入します。2)サービスロケーターの使用を避け、3)依存関係噴射コンテナを使用して依存関係を管理する、4)依存関係を注入することでテスト可能性を向上させる、5)注入依存性を回避、6)パフォーマンスに対するDIの影響を考慮します。

Golang: 構(gòu)造體、インターフェイス、依存関係の注入 (DI) Golang: 構(gòu)造體、インターフェイス、依存関係の注入 (DI)

10 Jan 2025

Go 言語の構(gòu)造とインターフェイス: 依存性注入を使用する場(chǎng)合とその組み合わせ方法 この記事では、Go 言語で構(gòu)造を使用する場(chǎng)合、インターフェイスを使用する場(chǎng)合、および両方を使用して依存性注入 (DI) を?qū)g裝する方法について説明します。これらの概念を、簡(jiǎn)単なおもちゃ箱の比喩を通して説明します?,F(xiàn)実世界の例: おもちゃ箱の構(gòu)造 構(gòu)造物を、車などのおもちゃ箱の中の特定のおもちゃとして考えてみましょう。車には、色、サイズ、タイプ (スポーツカーなど) などの特定の屬性があります。プログラミングでは、構(gòu)造體はオブジェクトに関するデータを保持します。インターフェイス インターフェイスは、あらゆる種類のおもちゃを収納できるおもちゃ箱のようなものです。転がったり、音を立てたり、光ったりするなど、おもちゃができることを定義します。これらの操作を?qū)g行できるあらゆるおもちゃを配置できます。

PHPでの依存関係注射(DI)の理解 PHPでの依存関係注射(DI)の理解

17 May 2025

依存癥(di)inphpisadesignpatterntatpromotesign oseCoupling、testability、およびmaintainability bymanaging objectdependenciesedally.1)diachievesiveSiversion ofcontrol of dependionsinversions dopentinciesthroughconstructors、セッター、ormethodparameters.2)distemesivevesive inversion

PHPの依存関係注射:簡(jiǎn)単な要約 PHPの依存関係注射:簡(jiǎn)単な要約

11 May 2025

依存関係(di)inphpisadesignpatternativats anducesclassodulencies、拡張測(cè)定性、テスト可能性、および維持可能性。

Angular 依存関係の注入 — カスタム Rxjs オペレーター內(nèi)にサービスを注入する Angular 依存関係の注入 — カスタム Rxjs オペレーター內(nèi)にサービスを注入する

07 Dec 2024

Angular は獨(dú)自のフレームワークです。それが開発者の柔軟性にどのように広がり、日々強(qiáng)化されているかを見るのは本當(dāng)に興奮しています。 Angular愛好家にとっては幸せな時(shí)代だと思います。 依存関係の注入と RxJS — 私の意見では、

See all articles