模型类(服务,依赖注入)中的Symfony2体系结构

时间:2012-04-01 18:20:34

标签: php dependency-injection symfony dependencies php-5.3

最近我搬到了Symfony 2,我有一个小问题。

假设我有以下型号:

“目录”,其中包含“目录”。模型从文件中获取数据,但也需要数据库连接来验证事物。

在Zend框架或其他过去的项目中,我通过静态对象加载了依赖项,形成了一种“注册表”。

据我所知,Symfony 2使用他们的服务模式(依赖注入)。但这如何适用于我的情况。

我必须为每个用于自动注入所有依赖项的模型类创建服务吗?或者当我自己从我的对象创建一个实例并在我的构造函数中设置数据库连接时,它是否完全有效? 为每个需要依赖的类创建服务,对我来说似乎有点过分。

1 个答案:

答案 0 :(得分:0)

您当然可以创建类并以旧式方式注入依赖项,但请花时间学习创建服务的详细信息。我想你会发现:

  1. 添加新服务非常简单。复制/粘贴几行配置,调整类,id和一些参数,你就完成了。比创建实际课程花费的时间少得多。

  2. 很快你就会从注入数据库连接到注入其他服务以及一些参数。你是否真的想要记住每次需要新物品时都要做所有这些事情?

  3. 使用服务ID可以将控制器与类的确切位置/名称分开。您第一次需要进行一些重构并可能将某些服务移动到自己的捆绑包中,或者可能将服务换成另一个服务,您将很高兴您不需要搜索所有代码并进行更改。

  4. S2并不专注于“模特”。相反,请考虑名为CatalogManager的服务,该服务包含对各种目录功能的访问。