加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用symfony DI延迟加载依赖项

发布时间:2020-12-13 20:11:32 所属栏目:百科 来源:网络整理
导读:目前我已经准备好了一个服务及其所有依赖项的Symfony2 DI容器实例.让我们说例如我有一个Car类,它有Engine和Lights作为依赖项. 在我当前的设置中,这两个依赖关系是在创建Car对象时通过setter注入自动创建的,但很可能这次我的Car对象不需要它的灯光,因此它不需
目前我已经准备好了一个服务及其所有依赖项的Symfony2 DI容器实例.让我们说例如我有一个Car类,它有Engine和Lights作为依赖项.

在我当前的设置中,这两个依赖关系是在创建Car对象时通过setter注入自动创建的,但很可能这次我的Car对象不需要它的灯光,因此它不需要创建实例这种依赖.

有没有办法在Symfony DI中实现这一目标?因此,只在需要时才创建Lights对象的实例?我的猜测是它会像Doctrine那样是某种代理实现,但据我所知,它在Symfony DI中不存在.

通过您的services.yml自动通过构造函数注入强制性的dedendencies.
如果您有可选的依赖项,则在需要时通过Controller中的setter注入它们.
$this->container->get('cars')->setLights(new NamespaceLights());

当然,您的汽车类必须如此设计,您必须在控制器中自行引导注射,或者在需要的时候将代码引导.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读