Crio: app/code/Company1/Module1/composer.json
{
"nome": "empresa1 / módulo-módulo1",
"descrição": "",
"require": {
"php": "~ 5.5.0 | ~ 5.6.0 | ~ 7.0.0",
"magento / framework": "100.0. *",
"magento / module-ui": "100.0. *",
"magento / module-config": "100.0. *",
"magento / module-directory": "100.0. *"
}
"type": "magento2-module",
"version": "100.0.0",
"licença": [
"OSL-3.0",
"AFL-3.0"
],
"carregamento automático": {
"files": ["registration.php"],
"psr-4": {
"Empresa1 \\ Módulo1 \\": ""
}
}
}
Crio: app/code/Company1/Module1/registration.php
\ Magento \ Framework \ Component \ ComponentRegistrar :: register (
\ Magento \ Framework \ Component \ ComponentRegistrar :: MODULE,
'Company1_Module1',
__DIR__
);
Crio: app/code/Company1/Module1/etc/module.xml
<? xml version = "1.0"?>
<config xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation = "urn: magento: framework: Módulo / etc / module.xsd">
<nome do módulo = "Company1_Module1" setup_version = "2.0.0">
<sequência>
<nome do módulo = "Magento_Directory" />
</sequence>
</module>
</config>
Criação do módulo concluída. Então agora crie a classe auxiliar dentro da pasta Helper .
app/code/Company1/Module1/Helper/Data.php
:
espaço para nome Company1 \ Module1 \ Helper;
classe Data estende \ Magento \ Framework \ App \ Helper \ AbstractHelper
{
função pública someMethod ()
{
retornar 1;
}
}
Como usar a classe auxiliar dentro do controlador
$this->_objectManager->create('Company1\Module1\Helper\Data')->someMethod();
Como usar a classe auxiliar dentro do bloco
função pública __construct (
\ Magento \ Framework \ View \ Element \ Template \ Context $ context,
\ Company1 \ Module1 \ Helper \ Data $ helper,
matriz $ data = []
) {
$ this-> helper = $ helper;
parent :: __ construct ($ context, $ data);
}
Então $this->helper
agora é instância de dados.
Para substituir qualquer classe, você pode usar a preferência .
app/code/Company1/Module1/etc/di.xml
:
<versão xml = "1.0"?>
<config xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation = "urn: magento: framework: ObjectManager / etc / config.xsd">
<preferência para = "Magento \ Directory \ Helper \ Data" tipo = "Company1 \ Module1 \ Helper \ Data" />
</config>
Você também pode usar o plugin. O plug-in é a melhor maneira de superar conflitos de reescrita. para obter mais informações, exemplo de plug-in