hett@hett-pc:/data/projects/graylist$ ./bin/console debug:container | grep client_manager
fos_oauth_server.client_manager alias for "fos_oauth_server.client_manager.default"
fos_oauth_server.client_manager.default FOS\OAuthServerBundle\Document\ClientManager
我可以在我的命令中使用该服务:
class TestCommand extends Command
{
protected static $defaultName = 'test';
private $clientManager;
public function __construct(?string $name = null, \FOS\OAuthServerBundle\Document\ClientManager $clientManager)
{
$this->clientManager = $clientManager;
parent::__construct($name);
}
}
但是得到错误
无法自动装配服务“App \ Command \ TestCommand”:参数 方法“__construct()”的“$ clientManager”引用类 “FOS \ OAuthServerBundle \ Document \ ClientManager”但没有这样的服务 存在。它不能自动注册,因为它来自di
fferent root namespace。
为什么?
我如何将默认服务与ClientManagerInterface
相关联?
PS:我也试图注入ClientManagerInterface
,但也遇到了同样的错误。
答案 0 :(得分:0)
Opps,我发现答案比写问题更快:
此服务不支持自动装配,需要在services.yaml
下面添加一行:
services:
FOS\OAuthServerBundle\Model\ClientManagerInterface: '@fos_oauth_server.client_manager.default'