Ich bin neu bei magento2.
Ich möchte ein einfaches Hello World-Modul in Magento 2 erstellen.
Wie erstelle ich dieses Modul?
Ich bin neu bei magento2.
Ich möchte ein einfaches Hello World-Modul in Magento 2 erstellen.
Wie erstelle ich dieses Modul?
Antworten:
Nun, das ist eine breite Frage, aber mein bester Rat wäre, die offiziellen Magento 2-Beispiele zu überprüfen.
Sie finden sie hier: https://github.com/magento/magento2-samples
Dieses Projekt ist eine Sammlung von Beispielen zur Demonstration der in Magento 2 eingeführten Technologien. Sie finden die einfachste Erweiterung zusammen mit Beispielen, die schrittweise Funktionen hinzufügen, um Sie durch die Erkundung und Schulung der Magento 2-Plattform zu führen.
Darüber hinaus finden Sie viele Tutorials, wenn Sie in Google nach "magento 2 create module" suchen
Nennen wir das Modul StackExchange_HelloWorld
.
Sie benötigen diese Dateien:
app/code/StackExchange/HelloWorld/registration.php
- die Registrierungsdatei
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'StackExchange_HelloWorld',
__DIR__
);
app/code/StackExchange/HelloWorld/etc/module.xml
- die Moduldeklarationsdatei
<?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
- die Frontend-Routing-Datei
<?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
- der Indexregler
<?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
- die Layoutdatei
<?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
- die Vorlage für den Block
<h2>Hello World</h2>
Nachdem Sie fertig sind, führen Sie dies in der Konsole aus
PHP Bin / Magento Setup: Upgrade
Sie sollten das Ergebnis unter der URL sehen können [ROOT]/helloworld
routes.xml
Datei sollte in app/code/StackExchange/HelloWorld/etc/frontend
nicht in platziert werden app/code/StackExchange/HelloWorld/frontend
. Es wurde ein etc
vermisst. Und ich habe 2 use
Klauseln in der Controller-Datei vergessen . Siehe meine Update-Antwort.
Ich habe es gestern auch gerade versucht und es ist mir gelungen, mein eigenes Hallo-Welt-Magento-2-Modul zu erstellen. Ich habe dieses Tutorial befolgt , um ein einfaches Magento 2-Modul zu erstellen. Es gibt 6 Schritte wie folgt
=> Schritt 1: Modulordner erstellen:
App / Code / Magentoexplorer / Helloworld
=> Schritt 2: Fügen Sie module.xml hinzu, um das Modul zu deklarieren
<?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>
=> Schritt 3: Erstellen Sie die Datei register.php, um das Modul zu registrieren
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magentoexplorer_Helloworld',
__DIR__
);
=> Schritt 4: Installieren, Aktivieren oder Deaktivieren / Entfernen des Moduls
cd [magento_directory]
php bin/magento setup:upgrade
=> Schritt 5: Route des Moduls. erstellenapp/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>
=> Schritt 6: Controller und Aktion.
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;
}
}
Das beste Modul, dem Sie folgen können, ist dieses: https://github.com/magento/magento2-samples/tree/master/sample-module-newpage
Es konzentriert sich auf das Frontend für Magento 2. Sie können dieses Modul möglicherweise verwenden und in Ihr eigenes Modul umwandeln.
Das einfachste Modul ist einfach genug:
app/code
Erstellen Sie im Inneren Ihren Ordner für Anbieter und Modul. Dhapp/code/MyCompany/FirstModule
Fügen Sie im FirstModule
Ordner a hinzuregistration.php
DIR);
Erstellen Sie im selben Ordner einen etc
Ordner wieapp/code/MyCompany/FirstModule/etc
Im etc
Ordner erstellen Sie einemodule.xml
Und voila. Das ist es. Sie können Ihr Modul jetzt über SSH mit dem bin/magento module:enable MyCompany_FirstModule
Befehl aktivieren .
Unten finden Sie das Tutorial für ein einfaches Modul
https://www.mageplaza.com/magento-2-module-development/
Sie können das folgende Modul auch herunterladen
https://github.com/tzyganu/Magento2SampleModule
Für Magento 2 stehen viele Modulersteller zur Verfügung. Hier einige Links
http://cedcommerce.com/magento-2-module-creator/
https://amasty.com/magento-2-module-creator.html
Ich hoffe es hilft :)
Um ein Modul in Magento 2 zu erstellen, sind folgende Schritte erforderlich:
Für die beste Verwendung PHP Storm
Best Practice Verwenden Sie PHP Storm
Schritt 1: Erstellen Sie den Ordner des Hello World-Moduls
Schritt 2: Modul erstellen
Schritt 3: Registrieren Sie das erstellte Modul
Schritt 4: Aktivieren Sie das Modul
Der Name des Moduls ist als "VendorName_ModuleName" definiert. Der erste Teil ist der Name des Anbieters und der letzte Teil ist der Name des Moduls: Zum Beispiel: Sathya_HelloWorld.
##### Dateiverzeichnis erstellen als
Magento2/app/code/Sathya/HelloWorld
app/code/Sathya/HelloWorld/etc/module.xml
Inhalt wäre:
<?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>
Erstellen Sie die Datei Registration.php
app/code/Sathya/HelloWorld/registration.php
Inhalt wäre:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sathya_HelloWorld',
__DIR__
);
Stellen Sie vor dem Aktivieren des Moduls sicher, ob das Modul erstellt wurde oder nicht. Führen Sie dazu den Befehl aus dem Magento-Stammverzeichnis als aus.
php bin/magento module:status
Es werden alle deaktivierten Module aufgelistet
###### Sathya_HelloWorld
Um das Modul zu aktivieren, führen Sie den folgenden Befehl aus:
php bin/magento module:enable Sathya_HelloWorld
Es gibt auch eine andere Möglichkeit, dies zu aktivieren. Was später erklärt wird.
Bitte aktualisieren Sie Ihre Datenbank: Führen Sie "bin / magento setup: upgrade" aus dem Magento-Stammverzeichnis aus.
Lassen Sie den Befehl ausführen:
php bin/magento setup:upgrade
Bitte renne
php bin/magento setup:static-content:deploy
Dann ausführen (optional)
php bin/magento setup:static-content:deploy -f
Um eine Route hinzuzufügen, muss die Datei route.xml erstellt werden
app/code/Sathya/HelloWorld/etc/frontend/routes.xml
Inhalt wäre:
<?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>
Das Verzeichnis und die Datei, die Sie erstellen müssen, sind:
app/code/Sathya/HelloWorld/Controller/Index/Test.php
Inhalt wäre:
<?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;
}
}
Führen Sie anschließend den Befehl aus, um den Cache zu löschen
php bin/magento c:f
Überprüfen Sie Ihr Modul, indem Sie jetzt die URL eingeben:
http://< YourDomain.com >/helloworld/index/test