Rob*_*zzi 1 service web-services symfony symfony-2.4
我刚刚在Symfony2中实现了我的第一个服务.
我注意到,在控制器方法中,我是否这样调用服务
$this->container->get('main.service');
Run Code Online (Sandbox Code Playgroud)
或者
$this->get('main.service');
Run Code Online (Sandbox Code Playgroud)
没有区别.
我同样得到了这两项服务.
差异在哪里?
如果您正在扩展Symfony提供的基本控制器,则没有区别.
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class YourController extends Controller
Run Code Online (Sandbox Code Playgroud)
如果您深入了解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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2881 次 |
| 最近记录: |