Ich habe in vielen Tutorials zum Erstellen von Block-Plugins bemerkt,
$this->t('text')
wird verwendet, um übersetzbaren Text zu erstellen, insbesondere in der Blockformularfunktion. Jedoch mit
t('text')
erzeugt keine Fehler. Gibt es einen Unterschied zwischen diesen beiden? Und wenn nicht, was ist die beste Vorgehensweise?
Antworten:
Um genau zu sein: Bei der internen Implementierung gibt es keinen Unterschied .
Als bewährte Methode sollten Sie jedoch nach Möglichkeit
$this->t
anstelle der globalent
Methode verwenden. Wenn Sie die Funktion überprüfen,t
wird ein neues TranslateableMarkup-Objekt zurückgegeben .Wenn Ihre Klasse sagt, dass
$this->t
nicht definiert ist, können Sie das StringTranslationTrait hinzufügen, um das Verhalten hinzuzufügen, oder es als Abhängigkeit einfügen .Als Best-Practice-Regel möchten Sie im Allgemeinen keine Prozeduren innerhalb von OOP mischen, es sei denn, dies ist vollständig unvermeidbar (z. B. native PHP-Funktionen).
quelle
In der Dokumentation zu t () heißt es:
Der Grund dafür wird nicht erläutert. Wenn Sie sich jedoch den Kommentar auf der Dokumentationsseite ansehen , erhalten Sie einen Grund für die Verwendung dieser Merkmalsmethode oder dieser Klasse.
quelle