Php 如何在Symfony表达式语言中连接字符串、参数和函数返回结果

Php 如何在Symfony表达式语言中连接字符串、参数和函数返回结果,php,symfony,Php,Symfony,我使用的是symfony2.4及其表达式语言组件。在我的一个服务定义中,我想使用带有type=“expression”的参数。如何使用表达式语言连接以下四个组件: service('kernel')。getCacheDir()函数结果 “/”只是一个斜杠 %router.cache\u class\u prefix%A参数 %corebundle.route\u provider.cache.class%A参数 我希望我清楚地知道我想要实现什么。下面是services.xml文件的一部分,我想在

我使用的是symfony2.4及其表达式语言组件。在我的一个服务定义中,我想使用带有
type=“expression”
的参数。如何使用表达式语言连接以下四个组件:

  • service('kernel')。getCacheDir()
    函数结果
  • “/”
    只是一个斜杠
  • %router.cache\u class\u prefix%
    A参数
  • %corebundle.route\u provider.cache.class%
    A参数
  • 我希望我清楚地知道我想要实现什么。下面是
    services.xml
    文件的一部分,我想在其中使用它。但这会引发一个错误:
    SyntaxError:在位置33处出现意外的值“/”的标记“字符串”。

    <parameters>
        <parameter key="corebundle.route_provider.cache.class">ZikulaRoutes</parameter>
    </parameters>
    <services>
        <service id="corebundle.route_provider" class="%corebundle.route_provider.class%">
            <call method="setCachePath">
                <argument type="expression">service('kernel').getCacheDir() "/" %router.cache_class_prefix% %corebundle.route_provider.cache.class%</argument>
            </call>
        </service>
    
    
    ZikulaRoutes
    服务('kernel').getCacheDir()“/%router.cache\u class\u prefix%%corebundle.route\u provider.cache.class%
    
    表达式语言中的连接运算符是tilde字符
    ~
    。此表达式的正确语法为:

    service('kernel').getCacheDir() ~ '/' ~ parameter('router.cache_class_prefix') ~ parameter('corebundle.route_provider.cache.class')