是否可以覆盖/扩展Symfony\Component\DependencyInjection\Container::get()
方法?我想要自动创建服务,当它不包含在容器中,但服务的类别存在。
例如:服务的名称是My.MyBundle.Model.FooRepository
服务不存在此名称,但当我调用:
$container->get('My.MyBundle.Model.FooRepository');
检查\My\MyBundle\Model\FooRepository
的class_exists,当它存在时,添加到容器并返回它。这个新服务的依赖关系将由kutny/autowiring-bundle
解决。
此功能只能扩展到某些名称空间或接口,并且在生产环境中可以缓存,但对于开发来说将是很好的帮手。
有什么想法吗?
发布于 2014-08-18 05:41:39
这不是直接回答您的问题,但也许它满足了您的需求:如果您想在Symfony项目中拥有“自动连接”,您可以在Symfony中使用PHP-DI。PHP-DI是一个可以进行自动连接的替代容器( Symfony不能)。
请看一下Symfony 2 integration documentation,看看它是否符合您的要求。
https://stackoverflow.com/questions/25340739
复制