2016-03-31 3 views
0

Das scheint, als sollte es das grundlegendste sein, aber ich kann keine Informationen darüber finden. Wenn das Paket mehrere Dienste definiert, wie kann ich den einzelnen Dienst mit meinen eigenen überschreiben?Symfony2: Wie überschreiben Sie einen einzelnen Dienst aus dem Bundle mit meiner eigenen Klasse?

Zum Beispiel, wenn ich ein Bündel mit definierten Service haben, die durch andere Dienstleistungen dieses Bündel verwendet wird, weil es bestimmte Schnittstelle implementiert:

myapp_user.user.factory: 
    class: MyApp\UserBundle\User\UserFactory 
    arguments: ["@myapp_user.user.config_manager"] 

Ich möchte diesen Dienst mit meinem eigenen außer Kraft zu setzen, wie folgt aus:

myapp_user.user.factory: 
    class: MyApp2\UserBundle\User\UserFactory 
    arguments: ["@myapp_user.user.config_manager"] 

ich dachte, dass es sehr einfach sein sollte, ist nicht die ganze Behälter Idee über - in der Lage ist, auf einfache Weise Dienste/Abhängigkeiten wechseln? Ich kann jedoch keine Informationen darüber finden. Es gibt Informationen zum Erstellen eines "übergeordneten" Bundles und zum Überschreiben einer "Datei mit Definition von Diensten", jedoch nicht zu einzelnen Diensten. Fehle ich etwas? Ich möchte wirklich nicht "Elternpaket" verwenden, um nur einen Dienst durch meinen eigenen zu ersetzen.

+0

Es sollte funktionieren, aber Sie müssen Ihren benutzerdefinierten Dienst nach dem ersten zu deklarieren, Ihr Bündel mit Ihrer Überschreibung muss nach dem ersten geladen werden. –

Antwort

1

Dank Raphaël Malié habe ich die Antwort gefunden. Das Problem war in der Tat die Reihenfolge der Importe von Dateien mit deklarierten Diensten. Wie dumm von mir :) .

Verwandte Themen