我刚刚在 Symfony2 中实现了我的第一个服务。
我注意到,在控制器方法中,我是否如此调用服务
$this->container->get('main.service');
或者
$this->get('main.service');
没有区别。
我得到同样的服务。
差异在哪里?
我刚刚在 Symfony2 中实现了我的第一个服务。
我注意到,在控制器方法中,我是否如此调用服务
$this->container->get('main.service');
或者
$this->get('main.service');
没有区别。
我得到同样的服务。
差异在哪里?
如果您扩展Symfony 提供的基本控制器,则没有区别。
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class YourController extends Controller
如果您更深入地了解Symfony\Bundle\FrameworkBundle\Controller\Controller的实现,您可能会注意到它提供了一个get()
助手,它执行与您最初所做的完全相同的调用(通过容器获取服务)。
那么,那么,
简单地$this->get('something')
封装对$this->container->get('something')
.
这是get()
您在执行时调用的方法的实现$this->get('main.service');
/**
* Gets a service by id.
*
* @param string $id The service id
*
* @return object The service
*/
public function get($id)
{
return $this->container->get($id);
}