我在service.yml的自定义包中创建了一个服务,它需要EntityManager和来自parameters.yml的两个值。
来自我的service.yml的例子:
services:
google.analytics.manager:
class: CMS\AdminDashboardBundle\Manager\GoogleAnalytics\GoogleAnalyticsManager
arguments: ['@doctrine.orm.entity_manager','%ga.client.id%','%ga.key.name%']
我将此文件包含在DependcyInjection中。但到目前为止Symfony还在告诉我这个电话
$this->get('google.analytics.manager')
无法找到我的服务。此服务是此捆绑包中的帮助程序(因此不是捆绑类)。此捆绑包在AppKernel中正确设置。那么我错过了什么?
由于
答案 0 :(得分:1)
是的,它是从控制器调用的。为了使这项工作,我不得不直接导入它,但这是我想要避免的。此service.yml包含在CMS \ AdminDashboardBundle \ DependcyInjection \ CMSAdminDashboardBundleExtension.php中。
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}
这应该由Symfony完成。