Можно ли использовать $this->helper(...) в файлах phtml?


Вопрос об использовании $this->helper(...) в файлах phtml:

Позволяет ли это использовать его?

Проведя некоторое исследование, я вижу:

Диспетчер объектов следует использовать только на заводах, а затем вводить в конструктор. Преимущество использования этого заключается в меньшем количестве кода писать. Но это не делает его нормальным. Тот факт, что это все еще используется в ядре, объясняется тем, что оно еще не было переработано. Я надеюсь, что так и будет.

Это в ответ на использование \Magento\Framework\App\ObjectManager::getInstance() специально для вас. Для $this->helper() это кажется более неясным. Magento, похоже, все еще использует это в своем ядре.

Author: Chris Rogers, 2020-10-27

1 answers

Использование $this->helper() не рекомендуется, если вместо этого вы должны использовать модель представления (хотя некоторые основные файлы все еще используют ее). Даже использование $это не рекомендуется в PHTML, следует использовать $блок.

Использование модели представления - лучший способ https://devdocs.magento.com/guides/v2.4/extension-dev-guide/view-models.html#when-to-use-view-models

Вы можете ввести класс, который хотите использовать в PHTML, и создать для этого общедоступный метод получения класс

Magento рассматривает даже помощников как анти-шаблон https://devdocs.magento.com/guides/v2.4/ext-best-practices/extension-coding/common-programming-bp.html#avoid-creating-helper-classes

 6
Author: Vishwas Bhatnagar, 2020-10-27 09:42:48