我试图在类设置器中插入一个变量,但是它不起作用。 这是我的配置:
Company\CoreBundle\Services\InspectorManager\InspectorManager:
public: true
autowire: false
App\Helpers\GraphQl\Resolver\OrderResolver:
autowire: false
calls:
- [setInspector, ['@core.inspector_manager']]
和班级
class OrderResolver
{
protected $em;
/**
* @var InspectorManager $inspectorManager
*/
protected $inspectorManager;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
/**
* @var InspectorManager $inspectorManager
* @required
*/
public function setInspector(InspectorManager $inspectorManager)
{
$this->inspectorManager = $inspectorManager;
}
}
setInspector永远不会被调用。 InspectorManager类来自另一个Symfony版本(2.8)的另一个包,并在其中以这种方式声明:
core.inspector_manager:
class: Company\CoreBundle\Services\InspectorManager\InspectorManager
arguments: ['@doctrine.orm.entity_manager']
calls:
- [setGeolocalisation, ['@core.geolocation_service']]
您知道为什么它不起作用吗?我在这个问题上花了太多时间,但没有任何解决方法。
如果我运行debug:autowiring
,则会得到InspectorManager。
我已经将InspectorManager和OrderResolver的自动接线设置更改为true,但这并没有任何改变。