我不明白,例如我正在使用php-di容器,我有ClassA和ClassB,它们都是Intreface1的实现,而我正在通过DI创建这两个类的对象
现在,当我将ClassA注入构造函数时,我需要完全注入该类,该类创建该classA的依赖项,而不是Intreface1
我能以某种方式说这个特定的ClassA应该实现intrefeca1吗?在PHP-DI的文档中,我发现
// mapping an interface to an implementation
'LoggerInterface' => DI\create('MyLogger'),
但是我不明白它是如何工作的,LoggerIntreace只是将这个文本映射到对象的字符串
您可以注入“按界面”
带有monolog和php-di的示例,您说:
use Monolog\Logger;
use Psr\Log\LoggerInterface;
...
LoggerInterface::class => \DI\autowire(Logger::class)
现在在您的构造函数中,您可以注入
public function __construct(
\Psr\Log\LoggerInterface $logger
) {
$this->logger = $logger;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句