【问题标题】:How to concatenate a parameter value with a constant string in Yaml如何在 Yaml 中将参数值与常量字符串连接起来
【发布时间】:2015-06-14 19:10:06
【问题描述】:

我有一个在parameters.yml 中定义为参数的URL。我想创建一个服务,它是一个 SOAP 客户端。 SOAP 客户端的参数是wsdl 文件的URL。在我的例子中,wsdl 文件的 URL 是"%parameter_url%" + "?wsdl"`。

有没有办法将“?wsdl”连接到 YAML 中已经定义的参数?

【问题讨论】:

  • 通常,您将有一个库可以从配置文件(yaml)中读取。我不确定 php,但它适用于其他框架/语言。

标签: symfony yaml


【解决方案1】:

你不需要连接字符,你可以直接在参数后面附加常量。例如,对于 services.yml 中的服务定义:

my.service:
    class: "%my.service.class%"
    arguments:     
      - "@logger", 
      - "%some_parameter%", 
      - "%parameter_url%?wsdl", 

【讨论】:

  • 自 Symfony 3.1 以来不推荐使用以 '%' 指示符开头的标量,只需在整行周围添加引号即可:"%parameter_url%?wsdl"
【解决方案2】:

如果您希望连接两个参数。你可以这样做:

parameters.yml

parameter_url: XXXXX parameter_type: ?wsdl

services.yml

my.service:
    class: %my.service.class%
    arguments:     
        - @logger, 
        - %some_parameter%, 
        - '%parameter_url%%parameter_type%',

【讨论】:

    【解决方案3】:

    跟进redbirdo 他的回复,因为自 Symfony 3.1 以来不推荐使用以 '%' 指示符开头的标量:

    my.service:
      class: "%my.service.class%"
      arguments:
        - "@logger"
        - "%some_parameter%"
        - "%parameter_url%?wsdl"
    
    # OR
    
    my.service:
      class: "%my.service.class%"
      arguments: ["@logger", "%some_parameter%", "%parameter_url%?wsdl"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-12
      • 2011-05-13
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 2020-07-31
      相关资源
      最近更新 更多