Come sviluppare un modulo per Magento 2

In questo articolo vedremo come sviluppare un modulo Magento 2 o Magento 2 Hello World .

Come sapete, un modulo è una directory che contiene blocchi, controller, modelli, helper, etc. relativi a una specifica funzionalità. La cartella etc contiene admin ACL, menu admin, configurazione. In Magento 2, i moduli saranno presenti nella directory app / code di un'installazione Magento, con questo formato: app / code / <Vendor> / <ModuleName>.

Ora seguiremo questi passaggi per creare un semplice modulo che funzioni su Magento 2 e visualizzi Hello World.

Creare un modulo Hello Word per Magento 2

Per creare il modulo Hello World, è necessario completare i seguenti passaggi di alto livello:

  • Passaggio 1: creare la cartella del modulo Hello World
  • Passaggio 2: creare il file etc / module.xml
  • Passaggio 3: creare il file etc / registration.php
  • Passaggio 4: abilitare il modulo

Step 1: creare la cartella del modulo Hello Word

Il nome del modulo è definito come VendorName_ModuleName. La prima parte è il nome del venditore e l'ultima parte è il nome del modulo: Ad esempio: Magento_HelloWorld, Magentiamo_PdfInvoice.

Concentrati sulla seguente guida per creare le cartelle:

app/code/Magentiamo/HelloWorld

Step 2: creare il file etc / module.xml

Ora, è necessario creare la cartella etc e aggiungere il file module.xml

 app/code/Magentiamo/HelloWorld/etc/module.xml

I contenuti sarebbero:

<?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="MagentiamoHelloWorld" setup_version="1.0.0">
</module>
</config>

Step 3: creare il file etc / registration.php

In questo passaggio, aggiungeremo registration.php :

app/code/Magentiamo/HelloWorld/registration.php

I contenuti sarebbero:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magentiamo_HelloWorld',
__DIR__
);

Step 4: abilitare il modulo

Terminato il passaggio 3, abbiamo già creato il modulo HelloWorld. Ora dobbiamo abilitare questo modulo e lo faremo in questo passaggio.

Dopo aver creato il modulo se esegui il comando come:

 php bin/magento module:status

Dovresti vedere che il modulo è disabilitato :

Elenco dei moduli disabilitati: Magentiamo_HelloWorld

Per abilitare il modulo, segui la guida esatta. Esegui il comando:

 php bin/magento module:enable Magentiamo_HelloWorld
 

O in altro modo, puoi accedere al file:

 app/etc/config.php

Vedrai un lungo elenco di moduli presenti, aggiungi anche il tuo modulo:

...
'Magentiamo_HelloWorld' => 1,
...

Il tuo modulo dovrebbe essere disponibile ora.

Dopo questo passaggio, quando apri il tuo sito Web nel browser riceverai un errore che dice

Aggiorna il tuo database: esegui bin / magento setup: upgrade, dalla directory principale di Magento.

Esegui il comando:

php bin/magento setup:upgrade

Al termine, quando apri il tuo sito web nel browser vedrai che il layout del sito web è tutto disordinato.

Esegui quindi la riga di comando deloy per risolvere il problema.

php bin/magento setup:static-content:deploy

Dopo aver completato questa operazione, puoi anche vedere il tuo modulo dal back-end in Configurazione di sistema -> Avanzate -> Disabilita output moduli.

Ora creeremo un controller per testare il modulo.

Prima di creare un controller, creeremo un percorso per il modulo HelloWorld.

I percorsi in Magento sono divisi in 3 parti: Frontname del percorso, controller e azione come nel seguente esempio:

http://magentiamo.com/index.php/frontname/controller/action

Ora è necessario creare il file routes.xml

app / code / Magentiamo / HelloWorld / etc / frontend / routes.xml

poiché si tratta di una route frontend, l'abbiamo aggiunta nella cartella frontend / altrimenti dovevamo aggiungerla alla cartella adminhtml /

Il contenuto sarebbe:

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route frontName="helloworld" id="helloworld">
<module name="Mageplaza_HelloWorld"/>
</route>
</router>
</config>

Dopo aver definito la prima parte del percorso, l'URL verrà visualizzato come:

http://<yourhost.com>/helloworld/*
Ad esempio:
http: // localhost / helloworld / *

Quindi, continueremo a creare il controller e l'azione.

La cartella e il file che devi creare sono:

app / code / Magentiamo/ HelloWorld / Controller / Index / Test.php

I contenuti sarebbero:

<?php
namespace Mageplaza\HelloWorld\Controller\Index;
class Test extends \Magento\Framework\App\Action\Action
{
protected $_pageFactory;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $pageFactory)
{
$this->_pageFactory = $pageFactory;
return parent::__construct($context);
}
public function execute()
{
echo "Hello World";
exit;
}
}

Al termine, eseguire php bin / magento cache: clean per controllare il risultato.

Il tuo URL ora dovrebbe essere come:

http://<yourhost.com>/helloworld/index/test

Dopo aver completato tutti i passaggi, l'output Hello World dovrebbe essere visualizzato nel tuo browser quando apri l'URL. 

Non perderti le ultime novità!

Iscriviti oggi per restare aggiornato su tutte le novità Magentiamo