PHP DI和强制转换界面

詹姆斯·莫里亚蒂

我不明白,例如我正在使用php-di容器,我有ClassA和ClassB,它们都是Intreface1的实现,而我正在通过DI创建这两个类的对象

现在,当我将ClassA注入构造函数时,我需要完全注入该类,该类创建该classA的依赖项,而不是Intreface1

我能以某种方式说这个特定的ClassA应该实现intrefeca1吗?在PHP-DI的文档中,我发现

  // mapping an interface to an implementation
    'LoggerInterface' => DI\create('MyLogger'),

但是我不明白它是如何工作的,LoggerIntreace只是将这个文本映射到对象的字符串

bxN5

您可以注入“按界面”

带有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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章