Php Symfony 3.4供应商autowire

Php Symfony 3.4供应商autowire,php,symfony,Php,Symfony,我的symfony 3.4有问题,我一直在使用。我想我没有正确使用symfony autowire,但我找不到导致错误的原因 我新安装了symfony,只安装了一个附加包:league/tactician bundle 我尝试通过以下方式将其注入DefaultController的构造函数: /** * @var CommandBus */ private $bus; public function __construct(CommandBus $bus) { $this->

我的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未受影响。当我点击控制器时,我得到以下错误:
无法自动连接服务“AppBundle\controller\DefaultController”:方法“\uu construct()”的参数“$bus”引用类“League\Tactician\CommandBus”,但不存在此类服务。您可能应该将此类别名为现有的“tactician.commandbus.default”服务。

当我在我的services.yml中定义它时,像这样
League\tractician\CommandBus:“@tractician.CommandBus.default”
一切似乎都正常,但以这种方式定义我需要的每一项服务是非常不舒服的。这是唯一的方法还是我错过了什么

提前谢谢

我敢肯定你忘了注册捆绑包,这是我重新处理问题的唯一方法。转到AppKernel.php并添加

new League\Tactician\Bundle\TacticianBundle()
在$bundles数组中


L.E.我的坏消息,不是相同的错误消息。您使用的是哪个版本的捆绑包?我拥有“^1.1”,工作完美无瑕

看来tactician捆绑包没有最新的服务定义。因此,手动添加别名可能是您唯一的方法。除非定义了CommandBusInterface?您可以使用bin/console debug:container查看哪些服务可用。遗憾的是,没有CommandBusInterface。symfony的情况正常吗?我发现我可以很容易地将所有使用symfony安装的软件包注入到构造函数中,但对于供应商来说,我有一个错误。相当多的第三方捆绑包需要迎头赶上。但添加几个别名并没有什么大不了的。可能会查看github站点上的任何问题。出于价值考虑,我重新安装了Symfony 4.1,并定义了服务联盟\Tactician\CommandBus。是的,您确实回答了您的问题。您需要定义别名,因为在战术包中,自动布线已关闭。我在一个RESTAPI中也遇到了同样的情况。多亏了你的提问,我终于发现了这个问题。不知何故,我一直在使用旧的维斯里翁捆绑,这就是为什么自动布线不起作用。更新为我解决了这个问题,谢谢。