Créer: app/code/Company1/Module1/composer.json
{
"name": "company1 / module-module1",
"la description": "",
"nécessite": {
"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": "module magento2",
"version": "100.0.0",
"Licence": [
"OSL-3.0",
"AFL-3.0"
],
"chargement automatique": {
"files": ["registration.php"],
"psr-4": {
"Company1 \\ Module1 \\": ""
}
}
}
Créer: app/code/Company1/Module1/registration.php
\ Magento \ Framework \ Component \ ComponentRegistrar :: register (
\ Magento \ Framework \ Component \ ComponentRegistrar :: MODULE,
«Company1_Module1»,
__DIR__
);
Créer: 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">
<séquence>
<module name = "Magento_Directory" />
</sequence>
</module>
</config>
Création du module terminée. Créez maintenant une classe d'assistance dans le dossier Helper .
app/code/Company1/Module1/Helper/Data.php
:
espace de noms Company1 \ Module1 \ Helper;
classe Data étend \ Magento \ Framework \ App \ Helper \ AbstractHelper
{
fonction publique someMethod ()
{
retour 1;
}
}
Comment utiliser la classe d'assistance dans le contrôleur
$this->_objectManager->create('Company1\Module1\Helper\Data')->someMethod();
Comment utiliser la classe d'assistance dans le bloc
fonction publique __construct (
\ Magento \ Framework \ View \ Element \ Template \ Context $ context,
\ Company1 \ Module1 \ Helper \ Data $ helper,
tableau $ data = []
) {
$ this-> helper = $ helper;
parent :: __ construct ($ context, $ data);
}
Il en $this->helper
va de même pour l'instance de Data.
Pour écraser n'importe quelle classe, vous pouvez utiliser la préférence .
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">
<préférence pour = "Magento \ Directory \ Helper \ Data" type = "Company1 \ Module1 \ Helper \ Data" />
</config>
Vous pouvez également utiliser un plugin. Le plugin est le meilleur moyen de surmonter les conflits de réécriture. pour plus d'informations sur le plugin