我尝试使用一个实现接口和一个注释的服务创建一个可重用的包。 在DependencyInjection中,我使用方法getConfigTreeBuilder
创建Configuration类public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$treeBuilder->root('sow_binding', 'array');
return $treeBuilder;
}
和在class目录中加载services.yaml的Extension类。
public function load(array $configs, ContainerBuilder $container)
{
$loader = new YamlFileLoader(
$container,
new FileLocator(__DIR__.'/../Resources/config')
);
$loader->load('services.yaml');
}
我创建了一个测试,他创建了一个使用我的注释和我的服务的假类,但是当我执行它时我得到了这个消息:
Error : Class 'SOW\BindingBundle\Service\BindingService' not found
在我的测试中,我实例化了我的服务(正确导入):
$bindingService = new BindingService($reader, 'SOW\Annotation\Binding');
这是我的services.yaml文件:
parameters:
binding.annotation.class: SOW\Annotation\Binding
services:
SOW\BindingBundle\Service\BindingService:
alias: sow_binding.binder
public: true
arguments:
- "@annotations.reader"
- "%app.binding.annotation.class%"
为什么我的测试无法找到我的服务?
答案 0 :(得分:0)
从绑定中删除应用。注解。 class不是有效的参考。