How to concatenate a parameter value with a constant string in Yaml

27.6k Views Asked by At

I have an URL defined as a parameter in parameters.yml. I want to create a service which is a SOAP client. The argument of the SOAP client is an URL for a wsdl file. In my case, the URL of the wsdl file is "%parameter_url%" + "?wsdl"`.

Is there a way to concatenate the "?wsdl" to a parameter already defined in YAML?

3

There are 3 best solutions below

1
On BEST ANSWER

You don't need a concatenation character, you can append the constant directly after the parameter. For example, for a service definition in services.yml:

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

If you are looking to concatenate two parameters. You can do it this way:

parameters.yml

parameter_url: XXXXX parameter_type: ?wsdl

services.yml

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

Following up on redbirdo his response, since not quoting a scalar starting with the '%' indicator character is deprecated since 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"]