使用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()); 当然,您的汽车类必须如此设计,您必须在控制器中自行引导注射,或者在需要的时候将代码引导. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |