検索
ホームページ 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 クラスを必要とする場合、Bar クラスを作成し、Bar クラスを呼び出します。このメソッドには Bim クラスが必要であり、Bim クラスを作成してから他の作業を実行します。依存関係注入を使用する考え方は、アプリケーションが Foo クラスを使用し、Foo クラスには Bar クラスが必要で、Bar クラスには Bim クラスが必要です。次に、最初に Bim クラスを作成し、次に Bar クラスを作成して Bim を注入します。次に、 Foo クラスを作成し、 Bar クラスを挿入して、 Foo メソッドを呼び出し、 Foo が Bar メソッドを呼び出し、その後、他の作業を実行します。これは制御の反転パターンです。依存関係の制御は、呼び出しチェーンの先頭まで逆に行われます。このようにして、依存関係を完全に制御し、注入されたさまざまなオブジェクトを調整することでプログラムの動作を制御できます。たとえば、Foo クラスは memcache を使用しますが、Foo クラスのコードを変更せずに代わりに redis を使用できます。

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


免責事項

このサイトのすべてのリソースはネチズンによって提供されたもの、または主要なダウンロード サイトによって転載されたものです。ソフトウェアの整合性をご自身で確認してください。このサイトのすべてのリソースは学習の参考のみを目的としています。商業目的で使用しないでください。そうでない場合は、すべての結果に対して責任を負うことになります。侵害がある場合は、削除するためにご連絡ください。連絡先情報: admin@php.cn

Laravelコントローラーで依存関係注入を使用する方法 Laravelコントローラーで依存関係注入を使用する方法

09 Nov 2025

Laravel は、コントローラー内のタイプヒントの依存関係を自動的に解決することで、依存関係の挿入を簡素化します。依存関係の挿入により、クラスが依存関係を外部に保存できるようになり、テスト容易性とコードの保守性が向上します。たとえば、ユーザー サービスを直接挿入できます。

図書館管理プログラム (3) 図書館管理プログラム (3)

13 Jun 2016

図書館管理プログラム (3)。書籍のクエリ部分: ? if(!$UploadAction): ? //このプログラムは書籍のタイトル、著者、出版社の情報を出力するように設計されています。 //編集者:孔秀祥。日付: 2001/3/25? HTMLHEAD TITLE 書誌クエリ

緊急の隠しパスに関する問題 緊急の隠しパスに関する問題

13 Jun 2016

緊急! ! !隠しパスの問題の例を見てみましょう http://wenku.baidu.com/view/a4cee123de80d4d8d15a4fba.html 1. これは百度図書館のアドレスです。a4cee123de80d4d8d15a4fba がどうやって出てきたのか知りたいです。 2. レビュー要素 - ダウンロード ボタン、<a class="ic Reader-download

Outlook でメールとフォルダーを並べ替える方法 Outlook でメールとフォルダーを並べ替える方法

08 Nov 2025

このガイドでは、Outlook メールを送信者、色、既読ステータスごとに整理し、ワークフローに合わせてフォルダー レイアウトをカスタマイズする方法を説明します。乱雑な受信トレイに対処するのは、整理されていない図書館で 1 冊の本を見つけるのと同じくらい難しい場合があります。

Yandex公式ウェブサイト(ログインポータル)_Yandexメール公式ウェブサイトのログインポータルとアクセスアドレス Yandex公式ウェブサイト(ログインポータル)_Yandexメール公式ウェブサイトのログインポータルとアクセスアドレス

09 Nov 2025

Yandex公式Webサイトのログイン入り口はhttps://yandex.com/です。ユーザーは、ホームページ右上の「ログイン」からアクセスできます。電子メールまたは携帯電話番号によるログインをサポートしており、検索エンジン、電子メール、地図、クラウド ストレージ、その他の統合サービスにアクセスできます。

JPA が Spring Boot で Join テーブルをクエリするときに発生する依存関係注入の失敗の問題を解決する JPA が Spring Boot で Join テーブルをクエリするときに発生する依存関係注入の失敗の問題を解決する

08 Nov 2025

この記事は、開発者が Spring Data JPA を使用して結合テーブルをクエリするときに発生する UnsatisfiedDependencyException を解決できるようにすることを目的としています。エラー メッセージ、コード例、および解決策を分析することにより、JPQL クエリ ステートメントを正しく構築し、DTO クラスのコンストラクターがクエリ結果と一致することを確認して、依存関係注入の失敗の問題を回避する方法を説明します。

See all articles