我正在研究由另一家公司实施的Symfony 2应用程序,并且遇到了以下服务定义:
service_id:
class: 'path\to\class'
calls:
- [setRequest, ['@?request=']]
Run Code Online (Sandbox Code Playgroud)
我知道问号是什么@?request=意思(如果服务不存在,setRequest不会被调用),但是等号的末尾是什么意思呢?
谢谢!
等号用于告诉容器忽略范围违规.request是在特殊范围内,如果您在不同的范围内使用它,容器会抛出异常.
范围在Sf 2.8中已弃用,在Sf 3.0中已删除.请参阅https://symfony.com/doc/2.8/service_container/scopes.html
此外,从Symfony 2.4开始,你应该使用request_stack:http://symfony.com/blog/new-in-symfony-2-4-the-request-stack