Php 如何在Symfony表达式语言中连接字符串、参数和函数返回结果
我使用的是symfony2.4及其表达式语言组件。在我的一个服务定义中,我想使用带有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文件的一部分,我想在
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')