Я заметил во многих руководствах по созданию блочных плагинов,
$this->t('text')
используется для создания переводимого текста, особенно в функции блочной формы. Однако используя
t('text')
не выдает никаких ошибок. Есть ли разница между использованием любого из них? А если нет, что лучше?
Ответы:
Если быть точным по вашему вопросу: нет разницы во внутренней реализации.
Но, как лучшая практика , вы должны использовать
$this->t
вместо глобальныхt
везде, где это возможно. Если вы проверите функцию,t
возвращает новый объект TranslateableMarkup .Если ваш класс говорит, что
$this->t
он не определен, вы можете добавить StringTranslationTrait, чтобы добавить поведение или внедрить его как зависимость.Так что, как правило, вы не хотите смешивать процедурный процесс внутри ООП, если это совершенно не неизбежно (например, функции PHP).
источник
Документация для t () гласит:
Это не объясняет причину этого, но если вы посмотрите на комментарий на странице документации , это даст вам причину для использования этого метода или этого класса.
источник