Symfony2获得服务或获得容器服务

时间:2014-02-13 15:28:21

标签: web-services symfony service symfony-2.4

我刚刚在Symfony2中实现了我的第一个服务

我注意到,在控制器方法中,我是否调用了服务

$this->container->get('main.service');

左右

$this->get('main.service');

没有区别。

我同时获得服务

差异在哪里?

1 个答案:

答案 0 :(得分:7)

如果您延长Symfony提供的Base Controller,则没有区别。

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);
}