Estoy empezando a ver a más y más personas declarando clases de ayuda para poder usar lo siguiente en los archivos de plantilla:
$this->helper('Path/To/Helper/Class')->customMethod();
Este tipo de código permite a las personas evitar la restricción de no usar directamente el administrador de objetos, pero tiendo a ver código que debería ser código de bloqueo en esos ayudantes.
Asi que aqui están mis preguntas:
- ¿Qué debería uno escribir en las clases auxiliares?
- ¿En qué casos es relevante utilizar métodos auxiliares en las plantillas?
fuente
di.xml
tipo de clase de bloques, no guardo alguna configuración de diseño. Intenté, por ejemplo, hacerlo para la clase\Magento\Catalog\Block\Product\View\Type\Simple
, la plantilladefault.phtml
que se utilizó en nuestra plantilla se ignora. No tengo idea de por qué en este momentoVeo a los ayudantes como funciones globales dentro de su módulo (perdón por la palabra 'global'), y los gerentes / contratos de servicio como funciones globales que se pueden usar tanto dentro como fuera de su módulo.
Si sigues este principio, verás que hay un uso mínimo para los ayudantes, solo los uso como un contenedor de configuración en mis módulos.
Este tipo de cosas Si tiene alguna otra funcionalidad que pueda ser práctica fuera de su módulo, cree un administrador en su lugar.
En un mundo ideal, los desarrolladores de terceros que necesitan la funcionalidad de otros módulos solo deberían tener que buscar en las interfaces disponibles repositorios y administradores y otras cosas en la
Api
carpeta.fuente