Je suis nouveau sur magento2.
Je veux créer un module Hello World simple dans magento 2.
Comment créer ce module?
Je suis nouveau sur magento2.
Je veux créer un module Hello World simple dans magento 2.
Comment créer ce module?
Réponses:
Eh bien, c'est une question générale, mais mon meilleur conseil serait de vérifier les échantillons officiels de Magento 2.
Vous pouvez les trouver ici: https://github.com/magento/magento2-samples
Ce projet est une collection d'exemples pour démontrer les technologies introduites dans Magento 2. Vous trouverez l'extension la plus simple ainsi que des exemples qui ajoutent progressivement des fonctionnalités pour vous guider à travers une exploration et une éducation de la plate-forme Magento 2.
En plus de cela, vous pouvez trouver de nombreux tutoriels si vous recherchez "module de création magento 2" dans Google
Nommons le module StackExchange_HelloWorld
.
vous aurez besoin de ces fichiers:
app/code/StackExchange/HelloWorld/registration.php
- le dossier d'inscription
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'StackExchange_HelloWorld',
__DIR__
);
app/code/StackExchange/HelloWorld/etc/module.xml
- le fichier de déclaration du module
<?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
- le fichier de routage frontal
<?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
- le contrôleur d'index
<?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
- le fichier de mise en page
<?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
- le modèle du bloc
<h2>Hello World</h2>
une fois que vous avez terminé, exécutez-le dans la console
configuration de php bin / magento: mise à niveau
Vous devriez pouvoir voir le résultat à l'url [ROOT]/helloworld
routes.xml
fichier doit être placé dans app/code/StackExchange/HelloWorld/etc/frontend
pas dans app/code/StackExchange/HelloWorld/frontend
. Il etc
manquait un . Et j'ai oublié 2 use
clauses dans le fichier contrôleur. Voir ma réponse de mise à jour.
J'ai également essayé hier et réussi à créer mon propre module Hello World Magento 2. J'ai suivi ce tutoriel pour créer un simple module Magento 2 , il y a 6 étapes comme ci-dessous
=> Étape 1: créer le dossier du module:
application / code / Magentoexplorer / Helloworld
=> Étape 2: ajoutez module.xml pour déclear le module
<?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>
=> Étape 3: Créez registration.php pour enregistrer le module
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magentoexplorer_Helloworld',
__DIR__
);
=> Étape 4: Comment installer, activer ou désactiver / supprimer le module
cd [magento_directory]
php bin/magento setup:upgrade
=> Étape 5: Itinéraire du module. créerapp/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>
=> Étape 6: Contrôleur et action.
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;
}
}
Le meilleur module à suivre serait celui-ci: https://github.com/magento/magento2-samples/tree/master/sample-module-newpage
Il est axé sur l'interface de Magento 2. Vous pouvez peut-être utiliser ce module et le transformer en votre propre module.
Le module le plus nu est assez simple:
app/code
créez votre dossier pour le fournisseur et le module. C'est à direapp/code/MyCompany/FirstModule
Dans le FirstModule
dossier, ajoutez unregistration.php
DIR);
Dans le même dossier, créez un etc
dossier, commeapp/code/MyCompany/FirstModule/etc
Dans le etc
dossier, créez unmodule.xml
Et le tour est joué. C'est ça. Vous pouvez maintenant activer votre module via SSH avec la bin/magento module:enable MyCompany_FirstModule
commande.
Voici le tutoriel pour un module simple
https://www.mageplaza.com/magento-2-module-development/
Vous pouvez également télécharger le module ci-dessous
https://github.com/tzyganu/Magento2SampleModule
Il existe de nombreux modules de création disponibles pour Magento 2. Voici quelques liens
http://cedcommerce.com/magento-2-module-creator/
https://amasty.com/magento-2-module-creator.html
J'espère que cela aide :)
Pour créer un module dans Magento 2, les étapes suivantes sont requises:
Pour une meilleure utilisation PHP Storm
Meilleures pratiques Utilisez PHP Storm
Étape 1: créer le dossier du module Hello World
Étape 2: créer un module
Étape 3: enregistrer le module créé
Étape 4: activer le module
Le nom du module est défini comme «VendorName_ModuleName». La première partie est le nom du fournisseur et la dernière partie est le nom du module: Par exemple: Sathya_HelloWorld.
##### créer un répertoire de fichiers en tant que
Magento2/app/code/Sathya/HelloWorld
app/code/Sathya/HelloWorld/etc/module.xml
Le contenu serait:
<?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>
Créer un fichier Registration.php
app/code/Sathya/HelloWorld/registration.php
Le contenu serait:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Sathya_HelloWorld',
__DIR__
);
Avant d'activer le module, assurez-vous que le module est créé ou non. Pour cela, exécutez la commande à partir du répertoire racine de Magento en tant que.
php bin/magento module:status
Il répertorie tous les modules désactivés
###### Sathya_HelloWorld
Pour activer le module, exécutez la commande en tant que:
php bin/magento module:enable Sathya_HelloWorld
Il existe également une autre façon de l'activer. Ce qui sera expliqué plus tard.
Veuillez mettre à niveau votre base de données: Exécutez «bin / magento setup: upgrade» à partir du répertoire racine de Magento.
Exécutons la commande:
php bin/magento setup:upgrade
Veuillez exécuter
php bin/magento setup:static-content:deploy
Puis exécutez (facultatif)
php bin/magento setup:static-content:deploy -f
Pour ajouter une route, il est nécessaire de créer un fichier routes.xml
app/code/Sathya/HelloWorld/etc/frontend/routes.xml
Le contenu serait:
<?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>
Le répertoire et le fichier que vous devez créer sont:
app/code/Sathya/HelloWorld/Controller/Index/Test.php
Le contenu serait:
<?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;
}
}
Une fois terminé, veuillez exécuter la commande pour vider le cache
php bin/magento c:f
Vérifiez votre module en entrant l'URL maintenant devrait être comme:
http://< YourDomain.com >/helloworld/index/test