ホームページ >バックエンド開発 >PHPチュートリアル >PHP での依存関係の挿入について詳しく学び、それを適用する方法を確認してください。

PHP での依存関係の挿入について詳しく学び、それを適用する方法を確認してください。

青灯夜游
青灯夜游転載
2021-09-08 19:53:573419ブラウズ

依存性注入とは何ですか?この記事では、PHP における依存性注入について理解し、依存性注入が行われる理由、依存性注入の応用について紹介します。

PHP での依存関係の挿入について詳しく学び、それを適用する方法を確認してください。

1. 依存性注入 (DI) とは

  • 依存性注入 (DI)実際、これは基本的に、クラスへの依存関係がコンストラクターを通じて自動的に挿入されることを意味します。
  • 平たく言えば、現在クラスを操作しているが、このクラスの一部のメソッドまたは関数は、このクラスでは完了できないことを意味します。このクラスだけで実行できますが、別のクラスの助けを借りてのみ実現できます。
  • 最も直接的な兆候は、パラメーター データがオブジェクトとして渡される場合です。厳密に言うと、別のクラスで別のクラスを操作したいのですが、二つのクラスの間には相互依存関係があり、パラメータを渡す方法をインジェクションと呼びます

II 、その理由依存関係の注入が表示されます

  • 最初に、PHP が 1 つのクラス内の別のクラスを使用する必要がある場合、次の操作を実行します。
  • たとえば、必要な場合コンテナ クラスでアダプタ クラスを使用するには、使用前にインスタンス化する必要があります。
  • 多数の外部クラスを使用する必要がある場合、結合度が高くなりすぎて、簡単に難易度
  • 平たく言えば、コンテナは外部クラスなしでは機能しません。これを結合度が高すぎるといいます。
<?php
class container
{
    private $adapter;

    public function __construct()
    {
        $this->adapter = new adapter();
    }
}

3. 単純な依存関係のインジェクション

  • 上記のコードは結合度が高すぎるため、主に結合を理解するために依存性注入が発生します。
  • 以下に示すように、必要なのは次のとおりです。操作する必要があるクラス オブジェクトを渡すだけです。
  • 依存関係注入操作のパラメーターはオブジェクトであり、通常のパラメーターではありません。理解は深まりましたか?
  • しかし、このような単純な依存関係は、その結果、多くのクラスに依存すると、パラメーターを渡すのに時間がかかり、混乱が生じやすくなります。
#上記のパラメータの混乱の問題を解決するために、今回は依存性注入が進化しました。

マジックメソッドにより、__get がオブジェクトを設定します。
  • このとき、依存関係が多すぎてパラメーターが混乱するという問題を解決できます
  • <?php
    class container
    {
        private $adapter;
    
        public function __construct(adapter $adapter)
        {
            $this->adapter = $adapter;
        }
    }
  • 5. 依存関係インジェクションの適用

最初にコンテナ クラスを定義します。これは主にコンテナに必要なものを注入するために使用されます。操作対象のクラスを使用する場合は、コンテナ オブジェクトを渡すだけで済みます。 ## 6. 高レベルの最適化

  • 上記のアプリケーションでは、インスタンス化されたオブジェクトをコンテナに直接挿入します。
  • これにより、すべてのオブジェクトがリソースの損失が発生します。

オブジェクトがインスタンス化および注入されないように、クロージャを渡すことができます。使用する必要がある場合は、再度インスタンス化してください。あなたは、サーバーの数を減らすことができます リソースの損失

<?php
class container
{
    public $instance = [];

    public function __set($name, $value)
    {
        $this->instance[$name] = $value;
    }
}

$container = new container();

$container->adapter = new adapter();

    元のアドレス: https://juejin.cn/post/7004616671864291359
  • 推奨される学習: "
  • PHP ビデオ チュートリアル
  • >>

以上がPHP での依存関係の挿入について詳しく学び、それを適用する方法を確認してください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。