Symfony 3.4供应商自动接线

时间:2018-07-06 16:49:49

标签: php symfony

我遇到了symfony 3.4的问题。我认为我没有正确安装symfony autowire,但找不到导致错误的原因。

我重新安装了symfony,只安装了一个附加软件包:league/tactician-bundle

我尝试按照以下方式将其注入DefaultController的构造函数中:

/**
 * @var CommandBus
 */
private $bus;

public function __construct(CommandBus $bus)
{
    $this->bus = $bus;
}

/**
 * @Route("/", name="homepage")
 */
public function indexAction(Request $request)
{
    dump($this->bus);die;
}

我的services.yml未被修改。当我按下控制器时,出现以下错误:Cannot autowire service "AppBundle\Controller\DefaultController": argument "$bus" of method "__construct()" references class "League\Tactician\CommandBus" but no such service exists. You should maybe alias this class to the existing "tactician.commandbus.default" service.

当我在League\Tactician\CommandBus: '@tactician.commandbus.default'这样的services.yml中定义它时,一切似乎都可以正常工作,但是以这种方式定义我需要的每个服务都非常不舒服。是唯一的方法还是我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

我很确定您忘了注册捆绑软件,这是我可以解决此问题的唯一方法。转到您的AppKernel.php并添加

new League\Tactician\Bundle\TacticianBundle()

在您的$ bundles数组中。

L.E。我的糟糕,不是相同的错误消息。您使用的是哪个版本的捆绑软件?我有“ ^ 1.1”,并且工作无懈可击。