의존성 주입이란 무엇인가요? 이 기사에서는 PHP의 종속성 주입을 이해하고 종속성 주입의 이유와 종속성 주입 적용 방법을 소개합니다. 여러분에게 도움이 되기를 바랍니다.
1. 종속성 주입(DI)이란 무엇입니까?
일반인의 용어로, 즉 외부 클래스 없이는 컨테이너가 작동할 수 없으며 이를 결합 정도가 너무 높다고 합니다. <?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;
}
}
4. 높은 수준의 종속성 주입
<?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); //我是调度器
6. 고급 최적화
하면 서버 리소스 손실을 줄일 수 있습니다<?php
$container = new container();
$container->adapter = new adapter();
//高阶优化
$container = new container();
$container->adapter = function () {
return new adapter();
};
위 내용은 PHP의 종속성 주입에 대해 자세히 알아보고 적용 방법을 알아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!