Dependency injection 类中的Symfony2依赖项
我尝试创建一个类来管理我的应用程序的某些部分 但是我需要访问resources/config.yml中的配置 我试图用ContainerWare作为控件来扩展我的类 但容器没有设置好 我希望能够做到这一点:Dependency injection 类中的Symfony2依赖项,dependency-injection,symfony,Dependency Injection,Symfony,我尝试创建一个类来管理我的应用程序的某些部分 但是我需要访问resources/config.yml中的配置 我试图用ContainerWare作为控件来扩展我的类 但容器没有设置好 我希望能够做到这一点: class MyClass extends ContainerAware { public function myFunciton() { $em = $this->get('Doctrine')->getEntityManager(); } }
class MyClass extends ContainerAware
{
public function myFunciton()
{
$em = $this->get('Doctrine')->getEntityManager();
}
}
欢迎任何建议扩展
containerware
不会自动授予对服务容器的访问权限-您需要将容器注入类中。有两种方法可以做到这一点:
- 如果您的类注册为服务,则可以插入
@service\u容器
- 如果您的类不是服务,而是从具有容器访问权限的类(如控制器)访问的,则可以显式调用
setContainer()
@doctrine.orm.default\u entity\u manager
关于从config.yml访问数据,我建议包括该文件(在定义服务时可以完成),并使用
Symfony\Component\Yaml\Parser
或Symfony\Component\Yaml\Yaml
解析yml。解析器将yml字符串转换为PHP变量,然后您可以轻松使用。扩展containerware
不会自动授予对服务容器的访问权-您需要将容器注入类中。有两种方法可以做到这一点:
- 如果您的类注册为服务,则可以插入
@service\u容器
- 如果您的类不是服务,而是从具有容器访问权限的类(如控制器)访问的,则可以显式调用
setContainer()
@doctrine.orm.default\u entity\u manager
关于从config.yml访问数据,我建议包括该文件(在定义服务时可以完成),并使用
Symfony\Component\Yaml\Parser
或Symfony\Component\Yaml\Yaml
解析yml。解析器将一个yml字符串转换为一个PHP变量,您可以轻松地使用它。我的建议是仔细研究参考手册中有关服务的部分。一旦您完成了这个过程,那么将实体管理器注入MyClass就变得很简单了。我的建议是仔细研究参考手册中有关服务的部分。一旦您完成了这个过程,那么将实体管理器注入MyClass就变得很简单了。这对实体有效吗?是否希望能够自我保存实体?例如:$entity->save()否。实体是普通的PHP对象。他们不了解实体经理,也不应该了解。你想到的是条令1中的活动记录模式。条令2使用数据映射器模式。这对实体有效吗?是否希望能够自我保存实体?例如:$entity->save()否。实体是普通的PHP对象。他们不了解实体经理,也不应该了解。你想到的是条令1中的活动记录模式。条令2使用数据映射器模式。