为什么 PHPUnit 中的 Symfony URL 生成器指向 localhost?

Why does the Symfony URL generator in PHPUnit point to localhost?

我正在使用带有 PHP 5.6 的 Symfony 3,并且我已经使用 PHPUnit 设置了单元测试,它向控制器发出请求:

$this->client->request('GET', '/api');

URL /api 的控制器同时向本地 Web 服务器发出多个 Curl 请求。像这样:

do_http_requests([
    $this->get('router')->generate(
        'route', $params, UrlGeneratorInterface::ABSOLUTE
    ),
    ...
]);

这会失败,因为生成的 URL 指向 localhost (http://localhost/...) 而不是 web (http://web/...),这是我的主机名已经为本地网络服务器设置。我收到一条错误消息 Connection refused,因为没有任何内容在主机 localhost 上侦听。服务器在主机 web.

上运行

我也设置了环境变量:

SYMFONY__ROUTER__REQUEST_CONTEXT__HOST=web

我原以为 router 服务会获取该环境变量并相应地生成 URL,如 this guide 中所述。但事实并非如此。

我误会或遗漏了什么?

如果您能提供任何帮助,我将不胜感激。谢谢!

我应该在我的测试中使用它:

$this->client->request('GET', '/api', [], [], ['HTTP_Host' => 'web']