【问题标题】:Symfony2 get service or get container serviceSymfony2 获取服务或获取容器服务
【发布时间】:2014-02-14 18:55:13
【问题描述】:

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

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

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

差不多

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

没有区别。

我得到 服务 两者都一样。

区别在哪里?

【问题讨论】:

    标签: web-services symfony service symfony-2.4


    【解决方案1】:

    如果你扩展 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 2015-01-26
      相关资源
      最近更新 更多