Symfony geschachtelte Dienste - symfony, Abhängigkeitsinjektion
Kann die Symfony DI-Konfigurationsdatei einen Dienst von Diensten erstellen? Damit meine ich etwas im Sinne des folgenden Kerns:
services:
authenticator:
class: AcmeFoo
arguments: [@foo, @parser.users]
parsers: # not valid, this would not compile
users:
class: CsfdParsersUser
messages:
class: CsfdParsersMessage
Ich möchte alles definieren parsers
als Dienste, aber ich möchte sie auch unter einem haben parsers
Verzweigung, so ist es offensichtlich, dass sie nicht tatsächlich die (auch bestehende) darstellen User
oder Message
Entitäten.
In diesem Beispiel @parser.users
würde zur Instanz von lösen CsfdParsersUser
.
Antworten:
2 für die Antwort № 1Dies ist standardmäßig nicht möglich. Das "Problem" liegt hier: YamlFileLoader.php.
Wie Sie sehen können, wird die Verschachtelung nicht unterstützt und die erste Ebene wird unter "Dienste" als Service-ID behandelt.
Sie könnten Ihren eigenen YamlFileLoader erstellen, der dafür Unterstützung bietet und ihn in der Erweiterungsklasse Ihres Bundles verwendet.