我正在 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');
我知道这是一个非常古老的问题,但它在 Google 搜索结果中的排名很高。
从 Symfony 2.1 开始,您可以向 parameters.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(绝对)而不是路径(相对)