如何从控制台生成url

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何从控制台生成url

不幸的是,命令行上下文不知道您的VirtualHost或域名。这意味着如果您在控制台命令中生成绝对url,您可能会得到类似的结果http://localhost/foo/bar这不是很有用。

要解决这个问题,您需要配置“请求上下文”,这是一种华丽的说法,表示您需要配置您的环境,以便它知道在生成URL时应该使用什么URL。

有两种配置请求上下文的方法:在应用程序级别和每个命令。

全局配置请求上下文

要配置请求上下文(URL生成器使用的上下文),可以重新定义它作为默认值使用的参数,以更改默认主机(localhost)和方案(http)。如果Symfony不在根目录中运行,还可以配置基本路径。ob娱乐下载

注意,这不会影响通过正常web请求生成的url,因为这些url将覆盖默认值。

  • YAML
  • XML
  • PHP
1 2 3 4 5
# app / config / parameters.yml参数:router.request_context.host:“example.org”router.request_context.scheme:“https”router.request_context.base_url:“我的/路径”

配置每个命令的请求上下文

要在一个命令中更改它,只需从路由器服务并覆盖其设置:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/ / src / AppBundle /命令/ DemoCommand.php/ /……DemoCommand扩展ContainerAwareCommand受保护的函数执行(InputInterface输入, OutputInterface输出路由器->getContainer ()->get (“路由器”);上下文路由器->getContext ();上下文->setHost (“example.com”);上下文->setScheme (“https”);上下文->setBaseUrl (“我的/路径”);url路由器->生成(“路线名”数组“param-name”= >的参数值));/ /……}}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。