Crear: app/code/Company1/Module1/composer.json
{
"nombre": "empresa1 / módulo-módulo1",
"descripción": "",
"exigir": {
"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",
"versión": "100.0.0",
"licencia": [
"OSL-3.0",
"AFL-3.0"
],
"carga automática": {
"archivos": ["Registration.php"],
"psr-4": {
"Empresa1 \\ Módulo1 \\": ""
}
}
}
Crear: app/code/Company1/Module1/registration.php
\ Magento \ Framework \ Component \ ComponentRegistrar :: register (
\ Magento \ Framework \ Component \ ComponentRegistrar :: MODULE,
'Company1_Module1',
__DIR__
);
Crear: 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: Module / etc / module.xsd">
<module name = "Company1_Module1" setup_version = "2.0.0">
<secuencia>
<module name = "Magento_Directory" />
</sequence>
</module>
</config>
Creación del módulo realizada. Así que ahora cree la clase auxiliar dentro de la carpeta auxiliar .
app/code/Company1/Module1/Helper/Data.php
:
espacio de nombres Company1 \ Module1 \ Helper;
Los datos de clase se extienden \ Magento \ Framework \ App \ Helper \ AbstractHelper
{
función pública someMethod ()
{
retorno 1;
}
}
Cómo usar la clase auxiliar dentro del controlador
$this->_objectManager->create('Company1\Module1\Helper\Data')->someMethod();
Cómo usar la clase auxiliar dentro del bloque
función pública __construct (
\ Magento \ Framework \ View \ Element \ Template \ Context $ context,
\ Company1 \ Module1 \ Helper \ Data $ helper,
matriz $ datos = []
) {
$ this-> helper = $ helper;
parent :: __ construct ($ context, $ data);
}
Así $this->helper
que ahora es instancia de datos.
Para sobrescribir cualquier clase, puede usar preferencia .
app/code/Company1/Module1/etc/di.xml
:
<xml version = "1.0"?>
<config xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation = "urn: magento: framework: ObjectManager / etc / config.xsd">
<preferencia para = "Magento \ Directory \ Helper \ Data" type = "Empresa1 \ Módulo1 \ Helper \ Data" />
</config>
También puedes usar el complemento. El complemento es la mejor manera de superar el conflicto de reescritura. para más información ejemplo de complemento