2

我正在 Symfony2 中执行一个任务(命令组件),我想使用

$this->getRequest()->getHost()

就像我在控制器中所做的那样。获取该值的方法是什么(/Command/MyCommand.php)?

我知道我能做到$_SERVER['SERVER_NAME']。但是,我想为此使用 Symfony。

4

2 回答 2

5

如果您需要主机,您可以从路由器上下文中获取它:

$host = $this->getContainer()->get('router')->getContext()->getHost();

但是由于您正在寻找SERVER_NAME- 在从控制台执行脚本期间它将不可用。

这种情况的解决方法可能是在参数中定义您的参数并获取它Command

$serverName = $this->getContainer()->getParameter('your_defined_param');
于 2012-09-07T12:45:52.337 回答
1

我知道这是一个非常古老的问题,但它在 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(绝对)而不是路径(相对)

链接到手册Symfony.com - 如何从控制台生成 URL

于 2018-04-06T23:06:04.687 回答