如何生成url从控制台

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.1,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

如何生成url从控制台

不幸的是,命令行环境并不了解你的虚拟主机或域名。这意味着,如果你在一个控制台生成绝对url命令你可能得到类似http://localhost/foo/bar这不是很有用。

为了解决这个问题,您需要配置的“请求上下文”,这是一个奇特的方式说,您需要配置您的环境,让它知道URL时应该使用生成的URL。

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

在全球范围内配置请求上下文

配置请求URL发电机使用的上下文————你可以重新定义参数使用默认值来改变默认的主机(本地主机)和计划(http)。您还可以配置基本路径(URL发电机和资产)如果Symfony不是在根目录运行。欧宝娱乐app下载地址

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

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7
#配置/ services.yaml参数:router.request_context.host:“example.org”router.request_context.scheme:“https”router.request_context.base_url:“我的/路径”asset.request_context.base_path:“% router.request_context.base_url %”asset.request_context.secure:真正的

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

改变它只在一个命令可以获取从路由器请求上下文服务并覆盖其设置:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25日26日
/ / src /命令/ DemoCommand.php使用欧宝娱乐app下载地址\组件\路由\RouterInterface;/ /……DemoCommand扩展命令{私人美元路由器;公共函数__construct(RouterInterface美元路由器){::__construct ();美元- >路由器=美元路由器;}受保护的函数执行(InputInterface美元输入,OutputInterface美元输出){美元上下文=美元- >路由器- >getContext ();美元上下文- >setHost (“example.com”);美元上下文- >setScheme (“https”);美元上下文- >setBaseUrl (“我的/路径”);美元url=美元- >路由器- >生成(“路线名”,(“param-name”= >的参数值]);/ /……}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。