扩展Symfony容器

时间:2014-08-16 13:42:56

标签: php symfony dependency-injection autowired

是否可以覆盖/扩展Symfony\Component\DependencyInjection\Container::get()方法?我想要自动创建服务,当它不包含在容器中,但存在服务类。

例如: 服务名称为My.MyBundle.Model.FooRepository 使用此名称的服务不存在,但是当我打电话时:

$container->get('My.MyBundle.Model.FooRepository');

检查\My\MyBundle\Model\FooRepository的class_exists,当它存在时,添加到容器并返回它。这些新服务的依赖关系将由kutny/autowiring-bundle解决。

此功能只能扩展到某些命名空间或界面,并且在生产环境中可以缓存,但对于开发将是很好的帮手。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这不是直接回答你的问题,但也许它正在回应你的需求:如果你想在Symfony项目中进行“自动连接”,你可以在Symfony中使用PHP-DI。 PHP-DI是一个可以进行自动布线的替代容器(Symfony没有)。

查看Symfony 2 integration documentation,了解它是否适​​合您的账单。