Créer un controller sur Magento 2

Découvrez comment créer un controller sur Magento 2 ! Pensez à découvrir le tutoriel sur la création d’un module sur Magento 2 en préambule :

Étape 1 : Créez le répertoire pour le contrôleur

Dans le répertoire de votre module, créez un nouveau dossier « Controller », puis à l’intérieur de celui-ci, un autre dossier « Index ». 

Chemin complet: app/code/Gone/MyModule/Controller/Index.

Étape 2 : Créez le fichier du contrôleur

Dans le dossier « Index », créez un fichier PHP appelé « Index.php ».

Étape 3 : Ajoutez le code du contrôleur

Ouvrez « Index.php » et ajoutez le code du contrôleur.

<?php
namespace Gone\MyModule\Controller\Index;

use Magento\Framework\App\Action\HttpGetActionInterface;
use Magento\Framework\Controller\ResultInterface;
use Magento\Framework\View\Result\PageFactory;

class Index implements HttpGetActionInterface
{
/**
* @var PageFactory
*/
protected $resultPageFactory;
/**
* Constructor
*
* @param PageFactory $resultPageFactory
*/
public function __construct(PageFactory $resultPageFactory) {
$this->resultPageFactory = $resultPageFactory;
}

/**
* Execute view action
*
* @return ResultInterface
*/
public function execute() {
return $this->resultPageFactory->create();
}
}

Étape 4 : Configurez les routes

Pour faire fonctionner ce contrôleur, vous devez déclarer une « route ». Une route est un chemin d’URL qui redirige vers un certain contrôleur.

Créez le fichier routes.xml qui doit être situé dans app/code/Gone/MyModule/etc/frontend. Ajoutez-y le code suivant :

<?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="mymodule" frontName="mymodule">
<module name="Gone_MyModule" />
</route>
</router>
</config>
route controller

Dans cet exemple, « mymodule » est l’identifiant de la route et « frontName » est le nom qui apparaîtra dans l’URL. Donc, pour accéder à votre contrôleur, vous utiliserez une URL comme http://votre_domaine/mymodule/index/index

Étape 6 : Nettoyez le cache

Exécutez la commande suivante pour nettoyer le cache de Magento :

php bin/magento cache:flush

Votre controlleur est maintenant bien en place : profitez-en pour aller plus loin avec nos formations à Magento 2 pour développeur ou pour e-commerçants. Si vous souhaitez vous faire accompagner sur votre projet, notre agence Magento 2 est également en mesure d’être à vos côtés de A à Z.