He notado en muchos tutoriales para construir complementos de bloque,
$this->t('text')
se usa para crear texto traducible, especialmente en la función de forma de bloque. Sin embargo usando
t('text')
No produce ningún error. ¿Hay alguna diferencia entre usar cualquiera de estos? Y si no lo hay, ¿cuál es la mejor práctica?
Respuestas:
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 globalt
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.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).
fuente
La documentación para t () establece:
No explica la razón de esto, pero si mira el comentario en la página de documentación , le dará una razón para usar ese método de rasgo, o esa clase.
fuente