我从Symfony 3.4.4 + SonataAdmin Bundle开始。
一切都适合我。
我已经通过“php bin / console sonata:admin:generate”生成实体并在SonataAdmin包中的实体集成中生成“src / AppBundle / Resources / config / services.yml
该文件未集成到我的包中。
我已经读过使用依赖注入是加载该文件最正确的方法,但我不知道它是如何完成的。
有人可以向我解释如何安装依赖注入,并通过symfony的“良好实践”正确加载此文件吗?
答案 0 :(得分:1)
我觉得你很困惑。 依赖注入是软件开发中的一个原则,它通过不直接在类中设置属性来将类依赖性与其他类分离。相反,您可以将它作为示例提供给构造函数,或者之后通过公共setter方法设置它。有了这个,你的类是可替换的,这对测试你的源代码特别有用。
所以你无法安装软件开发原则。
您的services.yml中未生成您的实体。您的服务在此定义,您的实体通常转到src / AppBundle / Entity。
Symfony / Sonata通过在services.yml中定义服务并告诉他们将获得哪些参数来使用依赖注入。
例如
services:
mailer:
class: Mailer
arguments: ['%mailer.transport%']
这里将mailer.transport参数注入Mailers类构造函数。
你的app / config文件夹中有很多yml文件,但是这些文件在config.yml中是统一的
所以,如果你没有像
这样的指示- { resource: "@AppBundle/Resources/config/services.yml" }
在您的app / config / config.yml中,您的服务永远不会被加载。