Sono nuovo di magento2.
Voglio creare un semplice modulo Hello World in magento 2.
Come creare questo modulo?
Sono nuovo di magento2.
Voglio creare un semplice modulo Hello World in magento 2.
Come creare questo modulo?
Risposte:
Bene, questa è una domanda ampia, ma il mio miglior consiglio sarebbe di controllare i campioni ufficiali di Magento 2.
Puoi trovarli qui: https://github.com/magento/magento2-samples
Questo progetto è una raccolta di esempi per dimostrare le tecnologie introdotte in Magento 2. Troverai l'estensione più semplice insieme a esempi che aggiungono in modo incrementale funzionalità per guidarti attraverso l'esplorazione e l'educazione della piattaforma Magento 2.
Inoltre puoi trovare molti tutorial se cerchi "magento 2 create module" su Google
Diamo un nome al modulo StackExchange_HelloWorld
.
avrai bisogno di questi file:
app/code/StackExchange/HelloWorld/registration.php
- il file di registrazione
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'StackExchange_HelloWorld',
__DIR__
);
app/code/StackExchange/HelloWorld/etc/module.xml
- il file di dichiarazione del modulo
<?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="StackExchange_HelloWorld" setup_version="2.0.0" />
</config>
app/code/StackExchange/HelloWorld/etc/frontend/routes.xml
- il file di routing frontend
<?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 id="helloworld" frontName="helloworld">
<module name="StackExchange_HelloWorld" />
</route>
</router>
</config>
app/code/StackExchange/HelloWorld/Controller/Index/Index.php
- il controller dell'indice
<?php
namespace StackExchange\HelloWorld\Controller\Index;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
class Index extends \Magento\Framework\App\Action\Action
{
protected $resultPageFactory;
public function __construct(
Context $context,
PageFactory $resultPageFactory
)
{
parent::__construct($context);
$this->resultPageFactory = $resultPageFactory;
}
public function execute()
{
$resultPage = $this->resultPageFactory->create();
$resultPage->getConfig()->getTitle()->set(__('Hello World'));
return $resultPage;
}
}
app/code/StackExchange/HelloWorld/view/frontend/layout/helloworld_index_index.xml
- il file di layout
<?xml version="1.0"?>
<page layout="2columns-left" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="Magento\Framework\View\Element\Template" template="StackExchange_HelloWorld::index.phtml" />
</referenceContainer>
</body>
</page>
app/code/StackExchange/HelloWorld/view/frontend/templates/index.phtml
- il modello per il blocco
<h2>Hello World</h2>
dopo aver terminato, eseguilo nella console
php bin / magento setup: upgrade
Dovresti essere in grado di vedere il risultato all'URL [ROOT]/helloworld
routes.xml
file deve essere inserito in app/code/StackExchange/HelloWorld/etc/frontend
non in app/code/StackExchange/HelloWorld/frontend
. Mancava etc
. E ho dimenticato 2 use
clausole nel file del controller. Vedi la mia risposta di aggiornamento.
Ho anche provato ieri e sono riuscito a creare il mio modulo ciao world magento 2. Ho seguito questo tutorial per creare un semplice modulo Magento 2 , ci sono 6 passaggi come di seguito
=> Passaggio 1: crea la cartella del modulo:
app / code / Magentoexplorer / Helloworld
=> Passaggio 2: aggiungere module.xml per decannare il modulo
<?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="Magentoexplorer_Helloworld" setup_version="1.0.0" />
</config>
=> Passaggio 3: creare registration.php per registrare il modulo
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magentoexplorer_Helloworld',
__DIR__
);
=> Passaggio 4: Come installare, abilitare o disabilitare / rimuovere il modulo
cd [magento_directory]
php bin/magento setup:upgrade
=> Passaggio 5: percorso del modulo. creareapp/code/Magentoexplorer/Helloworld/etc/frontend/routes.xml
<?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 id="magentoexplorer" frontName="helloworld">
<module name="Magentoexplorer_Helloworld" />
</route>
</router>
</config>
=> Passaggio 6: controller e azione.
app / code / Magentoexplorer / Helloworld / Index / Index.php
<?php
namespace Magentoexplorer\Helloworld\Controller\Index;
class Display extends \Magento\Framework\App\Action\Action
{
public function __construct(
\Magento\Framework\App\Action\Context $context)
{
return parent::__construct($context);
}
public function execute()
{
echo 'Hello World';
exit;
}
}
Il modulo migliore da seguire sarebbe questo: https://github.com/magento/magento2-samples/tree/master/sample-module-newpage
È focalizzato sul frontend per Magento 2. Puoi forse usare questo modulo e trasformarlo nel tuo modulo.
Il modulo più semplice è abbastanza semplice:
app/code
crea la tua cartella per il fornitore e il modulo. ieapp/code/MyCompany/FirstModule
All'interno della FirstModule
cartella aggiungi aregistration.php
DIR);
All'interno della stessa cartella, crea una etc
cartella, ad esempioapp/code/MyCompany/FirstModule/etc
Nella etc
cartella creare unmodule.xml
E voilà. Questo è tutto. Ora puoi attivare il tuo modulo tramite SSH con il bin/magento module:enable MyCompany_FirstModule
comando.
Di seguito è riportato il tutorial per il modulo semplice
https://www.mageplaza.com/magento-2-module-development/
Puoi anche scaricare il modulo sottostante
https://github.com/tzyganu/Magento2SampleModule
Ci sono molti creatori di moduli disponibili per Magento 2. Ecco alcuni link
http://cedcommerce.com/magento-2-module-creator/
https://amasty.com/magento-2-module-creator.html
Spero che sia d'aiuto :)
Per creare un modulo in Magento 2, sono richiesti i seguenti passaggi:
Per il miglior utilizzo PHP Storm
Best practice Utilizzare PHP Storm
Passaggio 1: creare la cartella del modulo Hello World
Passaggio 2: creare un modulo
Passaggio 3: registrare il modulo creato
Passaggio 4: abilitare il modulo
Il nome del modulo è definito come "VendorName_ModuleName". La prima parte è il nome del fornitore e l'ultima parte è il nome del modulo: ad esempio: Sathya_HelloWorld.
##### crea la directory dei file come
Magento2/app/code/Sathya/HelloWorld
app/code/Sathya/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="Sathya_HelloWorld" setup_version="1.0.0">
</module>
</config>
Crea il file Registration.php
app/code/Sathya/HelloWorld/registration.php
I contenuti sarebbero:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sathya_HelloWorld',
__DIR__
);
Prima di abilitare il modulo, assicurarsi che il modulo sia stato creato o meno. Per questo eseguire il comando dalla directory principale di Magento come.
php bin/magento module:status
Elenca tutti i moduli disabilitati
###### Sathya_HelloWorld
Per abilitare il modulo, eseguire il comando come:
php bin/magento module:enable Sathya_HelloWorld
Inoltre c'è un altro modo per abilitarlo. Che sarà spiegato in seguito.
Aggiorna il tuo database: esegui "bin / magento setup: upgrade" dalla directory principale di Magento.
Esegui il comando:
php bin/magento setup:upgrade
Per favore, corri
php bin/magento setup:static-content:deploy
Quindi eseguire (facoltativo)
php bin/magento setup:static-content:deploy -f
Per aggiungere route, è necessario creare il file route.xml
app/code/Sathya/HelloWorld/etc/frontend/routes.xml
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="Sathya_HelloWorld"/>
</route>
</router>
</config>
La directory e il file che devi creare sono:
app/code/Sathya/HelloWorld/Controller/Index/Test.php
I contenuti sarebbero:
<?php
namespace Sathya\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 il comando per cancellare la cache
php bin/magento c:f
Controlla il tuo modulo inserendo l'URL ora dovrebbe essere come:
http://< YourDomain.com >/helloworld/index/test