Symfony: LoggingTranslator vs Übersetzer

7

Ich möchte meinen Übersetzungs-String in einen Service einfügen, also habe ich dies in der Service-Definition verwendet:

%Vor%

Ich habe das im Konstruktor verwendet:

%Vor%

Aber ich bekomme diesen Fehler:

%Vor%

Was ist der Unterschied zwischen den beiden?

    
b85411 20.03.2015, 08:31
quelle

2 Antworten

11

In Übereinstimmung mit der Nachrichtenankündigung , Ab der Version 2.6 ist die Übersetzerkomponente als Service wie translator.default definiert.

Ändern Sie also Ihre Service-Definition:

%Vor%

mit

%Vor%     
Matteo 20.03.2015, 09:51
quelle
7

Symfony 2.6 führte die Protokollierung fehlender Übersetzungen ein, und dafür wurde der Alias ​​ "Übersetzer" durch eine Art Proxy für die echte Übersetzerklasse ersetzt.

Wie bereits in der anderen (und derzeit akzeptierten) Antwort erwähnt, befindet sich die echte Übersetzerklasse jetzt im Dienst "translator.default" . Wenn Sie diesen Dienst anstelle von "translator" verwenden, wird diese neue Symfony-Funktion deaktiviert. Sie sollten dies also vermeiden.

Um das Problem zu beheben und weiterhin auf die neuen Funktionen zugreifen zu können, ändern Sie den Code Ihres Konstruktors so, dass er jede Implementierung von TranslatorInterface akzeptiert:

%Vor%     
Derek 17.12.2015 11:54
quelle

Tags und Links