Creare: app/code/Company1/Module1/composer.json
{
"name": "company1 / module-module1",
"descrizione": "",
"richiedono": {
"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",
"versione": "100.0.0",
"licenza": [
"OSL-3.0",
"AFL-3.0"
],
"caricamento automatico": {
"files": ["registration.php"],
"psr-4": {
"Company1 \\ Module1 \\": ""
}
}
}
Creare: app/code/Company1/Module1/registration.php
\ Magento \ Framework \ Component \ ComponentRegistrar :: registro (
\ Magento \ Framework \ Component \ ComponentRegistrar :: MODULO,
'Company1_Module1',
__DIR__
);
Creare: app/code/Company1/Module1/etc/module.xml
<? xml version = "1.0"?>
<config xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: noNamespaceSchemaLocation = "urna: magento: framework: Module / etc / module.xsd">
<module name = "Company1_Module1" setup_version = "2.0.0">
<Sequence>
<module name = "Magento_Directory" />
</ Sequence>
</ Module>
</ Config>
Creazione del modulo completata. Quindi ora crea la classe helper nella cartella Helper .
app/code/Company1/Module1/Helper/Data.php
:
namespace Company1 \ Module1 \ Helper;
class Data estende \ Magento \ Framework \ App \ Helper \ AbstractHelper
{
funzione pubblica someMethod ()
{
ritorno 1;
}
}
Come utilizzare la classe helper all'interno del controller
$this->_objectManager->create('Company1\Module1\Helper\Data')->someMethod();
Come utilizzare la classe helper all'interno del blocco
funzione pubblica __construct (
\ Magento \ Framework \ View \ Element \ Template \ Context $ context,
\ Company1 \ Module1 \ Helper \ Data $ helper,
array $ data = []
) {
$ this-> helper = $ helper;
costrutto parent :: __ ($ context, $ data);
}
Così $this->helper
è ora l'istanza di Data.
Per sovrascrivere qualsiasi classe puoi usare la preferenza .
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">
<preferenza per = "Magento \ Directory \ Helper \ Data" type = "Company1 \ Module1 \ Helper \ Data" />
</ Config>
Puoi anche usare il plugin. Il plugin è il modo migliore per superare il conflitto di riscrittura. per ulteriori informazioni sul plugin plugin