Ajouter et récupérer une configuration personnalisée dans Magento 2

Découvrez ici comment gérer les configurations personnalisées sur Magento 2, avant d’aller lire nos autres tutoriels sur le CMS !

Étape 1: Ajoutez un fichier system.xml

Dans votre module, créez un fichier system.xml dans le répertoire app/code/Gone/MyModule/etc/adminhtml.

Pour créer un module, rendez-vous sur notre tutoriel « Créer un module Magento 2 » :

Contenu pour system.xml :

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<section id="mymodule">
<group id="general" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label>General Configuration</label>
<field id="my_config" translate="label" type="text" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1">
<label>My Config</label>
</field>
</group>
</section>
</system>
</config>

Étape 2 : Accès via Back Office

Dans le répertoire etc, créer un fichier acl.xml. Il permet de gérer les droits d’accès et l’affichage dans le menu d’administration : 

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd">
<acl>
<resources>
<resource id="Magento_Backend::admin">
<resource id="Magento_Backend::stores">
<resource id="Magento_Backend::stores_settings">
<resource id="Magento_Config::config">
<resource id="Gone_MyModule::config_gone_mymodule" title="my_module"/>
</resource>
</resource>
</resource>
</resource>
</resources>
</acl>
</config>

Étape 3: Rafraîchissez la configuration et le cache

Après avoir ajouté le fichier system.xml, nettoyez le cache de configuration :

php bin/magento cache:clean config

Étape 4: Accédez à la configuration dans l’admin

Accédez à Stores > Configuration dans le panneau d’administration Magento. Vous devriez voir une nouvelle section pour votre module où vous pouvez entrer une valeur pour « My Config ».

Configuration Magento

Étape 5: Récupérez la valeur de la configuration

Pour récupérer la valeur de cette configuration dans votre code, vous pouvez injecter la classe MagentoFrameworkAppConfigScopeConfigInterface dans votre constructeur et utiliser la méthode getValue.

Exemple en PHP :

<?php
namespace Gone\MyModule\Model;

use Magento\Framework\App\Config\ScopeConfigInterface;

class MyClass
{
protected $scopeConfig;

public function __construct(ScopeConfigInterface $scopeConfig)
{
$this->scopeConfig = $scopeConfig;
}

public function getMyConfig()
{
return $this->scopeConfig->getValue(
'mymodule/general/my_config',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
}
}

Maintenant, lorsque vous appelez la méthode getMyConfig(), elle retournera la valeur que vous avez définie dans l’admin pour « Ma Config ».

Étape 6 : Activer le module

Dans le terminal, naviguez jusqu’à la racine de Magento et exécutez les commandes suivantes :

php bin/magento setup:upgrade 
php bin/magento cache:flush

Bravo, votre configuration est bien en place ! Si vous souhaitez devenir un véritable pro sur ce CMS, nous vous recommandons de jeter un oeil à nos formations Magento 2 pour tous les niveaux et besoins ; si vous souhaitez vous faire accompagner, vous pouvez faire appel à notre agence Magento 2.