我正在Symfony2中执行任务(命令组件),我想使用
$this->getRequest()->getHost()
就像我在控制器里一样。获取该值的方法是什么(/Command/MyCommand.php)?
我知道我能做$_SERVER['SERVER_NAME']
。但是,我想使用Symfony。
如果您需要主机,您可以从路由器上下文中获取:
$host = $this->getContainer()->get('router')->getContext()->getHost();
但由于您正在寻找SERVER_NAME
,因此在从控制台执行脚本期间,它将不可用。
解决这种情况的方法可以是在参数中定义参数,并将其设置为Command
:
$serverName = $this->getContainer()->getParameter('your_defined_param');
我知道这是一个很老的问题,但它在谷歌搜索结果中排名靠前。
自Symfony 2.1以来,您可以向参数添加其他字段。yml
# app/config/parameters.yml
parameters:
router.request_context.host: example.org
router.request_context.scheme: https
router.request_context.base_url: my/path
这适用于Symfony 4.1 之前的所有版本
值得一提的是,您还必须使用url(绝对),而不是路径
链接到手册Symfony.com-如何从控制台生成URL