Estou começando a ver mais e mais pessoas declarando classes auxiliares para poder usar o seguinte nos arquivos de modelo:
$this->helper('Path/To/Helper/Class')->customMethod();
Esse tipo de código permite que as pessoas evitem a restrição direta de não usar o gerenciador de objetos, mas eu costumo ver o código que deve ser um código de bloco nesses auxiliares.
Então, aqui estão as minhas questões:
- o que se deve escrever nas classes auxiliares?
- em quais casos é relevante usar métodos auxiliares nos modelos?
fonte
di.xml
tipo de classe de blocos, não mantenha alguma configuração de layout. Tentei, por exemplo, fazer isso para a classe\Magento\Catalog\Block\Product\View\Type\Simple
, o modelodefault.phtml
usado em nosso modelo é ignorado. Nenhuma pista do porquê no momentoVejo auxiliares como funções globais dentro do seu módulo (desculpe pela palavra 'global') e gerentes / contratos de serviço como funções globais que podem ser usadas tanto dentro como fora do módulo.
Se você seguir esse princípio, verá que há um uso mínimo para auxiliares, eu os uso apenas como wrapper de configuração em meus módulos.
Esse tipo de coisa. Se você tiver qualquer outra funcionalidade que possa ser prática fora do seu módulo, crie um gerente.
Em um mundo ideal, os desenvolvedores de terceiros que precisam da funcionalidade de outros módulos devem ter apenas que procurar nas interfaces disponíveis repositórios e gerenciadores e outras coisas na
Api
pasta -folder.fonte