【发布时间】:2014-02-14 18:55:13
【问题描述】:
我刚刚在 Symfony2 中实现了我的第一个服务。
我注意到,在控制器方法中,我是否如此调用服务
$this->container->get('main.service');
差不多
$this->get('main.service');
没有区别。
我得到 服务 两者都一样。
区别在哪里?
【问题讨论】:
标签: web-services symfony service symfony-2.4
我刚刚在 Symfony2 中实现了我的第一个服务。
我注意到,在控制器方法中,我是否如此调用服务
$this->container->get('main.service');
差不多
$this->get('main.service');
没有区别。
我得到 服务 两者都一样。
区别在哪里?
【问题讨论】:
标签: web-services symfony service symfony-2.4
如果你扩展 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') 的调用。
这是您在执行$this->get('main.service'); 时调用的get() 方法的实现
/**
* Gets a service by id.
*
* @param string $id The service id
*
* @return object The service
*/
public function get($id)
{
return $this->container->get($id);
}
【讨论】: