2016-11-08 6 views
1

Ich kann die Expression Language (EL) in den XML-Dateien verwenden, indem Sie nur den Typ des Parameters angeben, der Ausdruck ist.Yaml und Ausdruck Sprache

Allerdings kann ich diesen Typ nicht in Yml-Dateien angeben. Laut diesem Artikel:

https://knpuniversity.com/blog/service-expressions

theoretisch sollte ich in der Lage sein, wie dies leicht die Expression Language zuzugreifen:

arguments: 
     - "@=service('doctrine').getRepository('AppBundle:User')" 

Ich nehme an, die EL bevor die Konfiguration gelesen wird, ausgeführt werden soll, validiert und ging in das endgültige Objekt. Aber es ist nicht: Der Ausdruck wird anscheinend nie von EL in YML-Dateien ausgewertet, wie die oben genannte.

Was kann ich tun, um EL in YML-Dateien zu verwenden? Könnte es sein, dass ich selbst die Config-Validierung geschrieben habe (siehe: semantische Konfiguration für Bundles) und sollte ich eine Erwartung hinzufügen, die nicht nur ein Skalarwert ist, sondern auch ein Ausdruck?

Wenn die bekam Wert aus dieser Konfiguration Dumping, sehe ich die Zeichenfolge mit dem wörtlichen Wert, mit dem Beispiel, wie oben ist: @=service('doctrine').getRepository('AppBundle:User')

+0

ich in das gleiche Problem lief. Immer noch nicht die Antwort gefunden. – Aistis

Antwort

0

Diese Funktion ist für yml Dateien auch verfügbar ist, wie aus der Arbeit sollte Box.

Siehe: http://symfony.com/doc/current/service_container/expression_language.html

überprüfen Sie Ihre Symfony Version Vielleicht ...

+0

Es ist 2.7/2.8. – forsberg

+0

Dann sollte es funktionieren http://symfony.com/doc/2.7/service_container/expression_language.html – martin

+0

Es funktioniert für XML-Dateien, wie ich bereits erwähnt habe. Aber wo auch immer ich "@ = ...." Teil in die Yml Config Dateien setze, sagen wir parameter.yml, es wird behandelt wie es nur ein String war. Wenn ich möchte, dass es ein Ausdruck ist, muss ich selbst die Ausdruckssprache manuell in das endgültige Objekt einfügen und diese Zeichenfolge dort auswerten ... was ich nicht will, da ich erwarte, dass Symfony die Ausdrücke für yml automatisch auswertet , genau wie für XML, Dateien. – forsberg