为什么 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']
我正在使用带有 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']