ホームページ >バックエンド開発 >PHPチュートリアル >PHP 依存関係注入の概要の共有
この記事では、PHP に関する関連知識を提供します。主に、依存性注入とは何か、依存性注入の理由、依存性注入のアプリケーションなど、依存性注入に関連する問題を紹介します。皆さんのお役に立てれば幸いです。
推奨学習: 「PHP ビデオ チュートリアル 」
1 つの記事PHP の依存性注入を理解する. 多くの人は、PHP を一定期間学習した後、依存性注入という用語を聞くでしょうが、それについてはほとんど理解していません. 依存性注入は実際には PHP プログラミングの設計パターンであることは理解していますが、まだ理解されていませんデザイン パターンはプログラミングの効率化のために存在し、依存関係の注入は確かに行われます。
最も直接的な兆候は、パラメーター データがオブジェクトとして渡される場合です。厳密に言うと、別のクラスで別のクラスを操作したいのですが、二つのクラスの間には相互依存関係があり、パラメータを渡す方法をインジェクションと呼びます
<?php class container { private $adapter; public function __construct() { $this->adapter = new adapter(); } }
<?php class container { private $adapter; public function __construct(adapter $adapter) { $this->adapter = $adapter; } }
<?php class container { public $instance = []; public function __set($name, $value) { $this->instance[$name] = $value; } } $container = new container(); $container->adapter = new adapter();
<?php class container { public $instance = []; public function __set($name, $value) { $this->instance[$name] = $value; } } class adapter { public $name = '我是调度器'; } $container = new container(); $container->adapter = new adapter(); class autofelix { private $container; public function __construct(container $container) { $this->container = $container; } public function who($class) { return $this->container->instance[$class]->name; } } $autofelix = new autofelix($container); $who = $autofelix->who('adapter'); var_dump($who); //我是调度器
<?php $container = new container(); $container->adapter = new adapter(); //高阶优化 $container = new container(); $container->adapter = function () { return new adapter(); };
以上がPHP 依存関係注入の概要の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。