注入一个服务到自定义的类

我们有一个自己的类,希望在symfony中使用,我们最好把他设置为一个服务,如果他是一个全功能的工具我们也可以把他做成一个独立的bundle,这里我们只介绍第一种简单的服务方式。

那么在你的控制器中,你使用自己定义的这个服务,但是你自定义的这个服务,可能无法满足你的需求,因为你的服务类可能还依赖于其他的symfony的内部服务,例如你使用doctrine ORM去操作数据库,使用session来完成消息提示,想用路由名来生成url你要使用路由服务,等等。

整个过程很简单,在你的服务配置文件中,加入相应的服务为参数(依赖注入):

在你的AppBundle\Custom\DemoClass析构函数中接收参数即可:

 

 

下面我总结了一些常用的services服务

@doctrine.orm.entity_manager \Doctrine\ORM\EntityManager
@router \Symfony\Bundle\FrameworkBundle\Routing\Router
@session \Symfony\Component\HttpFoundation\Session\Session

发表评论