Para ser exactos en su pregunta: no hay diferencia en la implementación interna.
Pero como práctica recomendada , debe usar en $this->t
lugar de lo global t
siempre que sea posible. Si marca la función, t
está devolviendo un nuevo objeto TranslateableMarkup .
Si su clase dice $this->t
que no está definido, puede agregar StringTranslationTrait para agregar el comportamiento o inyectarlo como una dependencia.
El uso de este rasgo agregará los métodos t () y formatPlural () a la clase. Deben usarse para cada cadena traducible, de forma similar a cómo el código de procedimiento debe usar las funciones globales t () y \ Drupal :: translation () -> formatPlural (). Esto permite que las herramientas de extracción de cadenas encuentren cadenas traducibles.
Si la clase es capaz de inyectar servicios desde el contenedor, debería inyectar el servicio 'string_translation' y asignarlo a $ this-> stringTranslation.
Por lo tanto, como regla de mejores prácticas, generalmente no desea mezclar procedimientos dentro de OOP a menos que sea completamente inevitable (por ejemplo, funciones nativas de PHP).