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.