我正在使用Symfony 2.4和它的表达式语言组件。在我的一个服务定义中,我想使用type="expression"
的参数。如何使用表达式语言连接以下四个组件:
service('kernel').getCacheDir()
功能结果"/"
只是一个斜杠%router.cache_class_prefix%
参数%corebundle.route_provider.cache.class%
参数我希望我能清楚自己想要实现的目标。下面你会看到我想要使用它的services.xml
文件的一部分。但这会引发错误:SyntaxError: Unexpected token "string" of value "/" around position 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>
答案 0 :(得分:5)
表达式语言中的连接运算符是波浪号~
。此表达式的正确语法是:
service('kernel').getCacheDir() ~ '/' ~ parameter('router.cache_class_prefix') ~ parameter('corebundle.route_provider.cache.class')