Remplacement des paramètres de configuration
Cette rubrique explique comment dériver un nom de variable d’environnement connaissant un chemin de configuration. Vous pouvez remplacer les paramètres de configuration Adobe Commerce à l’aide de variables d’environnement. Par exemple, vous pouvez remplacer la valeur de l’URL active d’un processeur de paiement sur votre système de production.
Vous pouvez remplacer la valeur de tout paramètre de configuration à l’aide de variables d’environnement ; cependant, Adobe vous recommande de conserver des paramètres cohérents à l’aide du fichier de configuration partagé, config.php
, et du fichier de configuration spécifique au système, env.php
, comme décrit dans la présentation générale du déploiement.
Variables d’environnement
Un nom de variable d’environnement se compose de son étendue suivie de son chemin de configuration dans un format particulier. Les sections suivantes expliquent comment déterminer plus en détail un nom de variable.
Vous pouvez utiliser des variables pour l’une des opérations suivantes :
-
Les valeurs sensibles doivent être définies à l’aide de variables d’environnement ou de la commande
magento config:sensitive:set
. -
Les valeurs propres au système doivent être définies à l’aide des éléments suivants :
- Variables d’environnement
- La commande
magento config:set
- L’administrateur suivi de la commande
magento app:config:dump
Les chemins de configuration se trouvent dans :
Noms de variables
Le format général des noms de variable des paramètres système suit :
<SCOPE>__<SYSTEM__VARIABLE__NAME>
<SCOPE>
peut être :
-
Portée globale (c’est-à-dire le paramètre global pour toutes portées)
Les variables de portée globale ont le format suivant :
CONFIG__DEFAULT__<SYSTEM__VARIABLE__NAME>
-
Portée spécifique (c’est-à-dire que le paramètre affecte uniquement une vue de magasin ou un site web spécifique)
Les variables de portée de vue de magasin, par exemple, ont le format suivant :
CONFIG__STORES__ <STORE_VIEW_CODE>__<SYSTEM__VARIABLE__NAME>
Pour plus d’informations sur les portées, voir :
<SYSTEM__VARIABLE__NAME>
est le chemin de configuration avec des caractères de soulignement doubles remplacés par /
. Pour plus d’informations, voir Étape 2 : définition des variables système.
Format de variable
<SCOPE>
est séparé de <SYSTEM__VARIABLE__NAME>
par deux caractères de soulignement.
<SYSTEM__VARIABLE__NAME>
est dérivé du chemin de configuration d’un paramètre de configuration, qui est une chaîne délimitée /
qui identifie de manière unique un paramètre particulier. Remplacez chaque caractère /
du chemin de configuration par deux caractères de soulignement pour créer la variable système.
Si un chemin de configuration contient un caractère de soulignement, celui-ci reste dans la variable .
Vous trouverez une liste complète des chemins de configuration dans :
Étape 1 : recherche de la valeur de portée du site web ou de la vue de magasin
Cette section explique comment trouver et définir des valeurs de configuration système par portée (vue de magasin ou site web). Pour définir des variables de portée globale, voir Étape 2 : définition de variables de vue globale, de site web ou de magasin.
Les valeurs de portée proviennent des tables store
, store_group
et store_website
.
- La table
store
spécifie les noms et les codes des vues de magasin - La table
store_website
spécifie les noms et les codes de site web
Vous pouvez également trouver les valeurs de code à l’aide de l’Admin.
Comment lire le tableau :
-
colonne
Path in Admin
Les valeurs situées avant la virgule sont des chemins d’accès dans la navigation Admin. Les valeurs après la virgule sont des options dans le volet de droite.
-
La colonne
Variable name
est le nom de la variable d'environnement correspondante.Vous avez la possibilité de spécifier les valeurs système de ces paramètres de configuration en tant que variables d’environnement si vous le souhaitez.
- Le nom complet de la variable est toujours ALL CAPS
- Commencer un nom de variable avec
CONFIG__
(notez deux caractères de soulignement) - Vous trouverez la partie
<STORE_VIEW_CODE>
ou<WEBSITE_CODE>
d’un nom de variable dans la base de données Admin ou Commerce, comme indiqué dans les sections suivantes. - Vous pouvez trouver
<SYSTEM__VARIABLE__NAME>
comme décrit dans Étape 2 : définir des variables globales, de site web ou de vue de magasin.
Recherche d’un site web ou stockage d’une portée d’affichage dans l’administrateur
Le tableau suivant résume la manière de trouver la valeur d’affichage de site web ou de magasin dans l’administrateur.
CONFIG__STORES__<STORE_VIEW_CODE>__<SYSTEM__VARIABLE__NAME>
CONFIG__WEBSITES__<WEBSITE_CODE>__<SYSTEM__VARIABLE__NAME>
Par exemple, pour trouver un site web ou stocker la valeur de portée de vue dans l’administrateur :
-
Connectez-vous à l’administrateur en tant qu’utilisateur autorisé à consulter des sites web.
-
Cliquez sur Stores > All Stores.
-
Cliquez sur le nom d’un site web ou d’une vue de magasin.
Le volet de droite s’affiche comme suit.
-
Le nom de la portée s’affiche dans le champ Code.
-
Passez à l’ Étape 2 : définition des variables d’affichage globales, de site web ou de magasin.
Recherche d’une portée d’affichage de site web ou de magasin dans la base de données
Pour obtenir ces valeurs de la base de données :
-
Connectez-vous à votre système de développement en tant que propriétaire du système de fichiers si vous ne l’avez pas déjà fait.
-
Saisissez la commande suivante :
code language-bash mysql -u <database-username> -p
-
À l’invite
mysql>
, saisissez les commandes suivantes dans l’ordre indiqué :code language-shell use <database-name>;
-
Utilisez les requêtes SQL suivantes pour trouver les valeurs appropriées :
code language-shell SELECT * FROM STORE; SELECT * FROM STORE_WEBSITE;
Voici un exemple :
code language-shell mysql> SELECT * FROM STORE_WEBSITE; +------------+-------+--------------+------------+------------------+------------+ | website_id | code | name | sort_order | default_group_id | is_default | +------------+-------+--------------+------------+------------------+------------+ | 0 | admin | Admin | 0 | 0 | 0 | | 1 | base | Main Website | 0 | 1 | 1 | | 2 | test1 | Test Website | 0 | 3 | 0 | +------------+-------+--------------+------------+------------------+------------+
-
Utilisez la valeur de la colonne
code
comme nom de la portée, et non la valeurname
.Par exemple, pour définir une variable de configuration pour le site Web de test, utilisez le format suivant :
code language-shell CONFIG__WEBSITES__TEST1__<SYSTEM__VARIABLE__NAME>
où
<SYSTEM__VARIABLE__NAME>
provient de la section suivante.
Étape 2 : définition de variables d’affichage globales, de site web ou de magasin
Cette section explique comment définir des variables système.
-
Pour définir des valeurs pour la portée globale (c’est-à-dire tous les sites web, magasins et vues de magasin), commencez le nom de variable par
CONFIG__DEFAULT__
. -
Pour définir une valeur pour une vue de magasin ou un site web spécifique, démarrez le nom de variable comme décrit dans Étape 1 : Rechercher la valeur de portée :
CONFIG__WEBSITES
CONFIG__STORES
-
La dernière partie du nom de la variable est le chemin de configuration, qui est unique pour chaque paramètre de configuration.
Le tableau suivant présente quelques exemples de variables.
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_PORT
<SCOPE>__SHIPPING__ORIGIN__COUNTRY_ID
<SCOPE>__ADMIN__URL__CUSTOM
<SCOPE>__ADMIN__URL__CUSTOM_PATH
Exemples
Cette section explique comment rechercher des valeurs de certains exemples de variables.
Nom d’hôte du serveur Elasticsearch
Pour rechercher le nom de variable pour la minification globale de l’HTML :
-
Déterminez la portée.
Il s’agit de la portée globale, de sorte que le nom de variable commence par
CONFIG__DEFAULT__
. -
Le reste du nom de la variable est
CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME
.Result : le nom de variable est
CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME
Origine du pays d'expédition
Pour rechercher le nom de variable pour l’origine du pays d’expédition :
-
Déterminez la portée.
Recherchez la portée dans la base de données comme expliqué à l’étape 1 : recherchez la valeur de la portée de la vue de magasin ou de site web. (Vous pouvez également trouver la valeur dans l’Admin comme indiqué dans le tableau de l’étape 2 : définir des variables globales, de site web ou de vue de magasin.
Par exemple, la portée peut être
CONFIG__WEBSITES__DEFAULT
. -
Le reste du nom de la variable est
SHIPPING__ORIGIN__COUNTRY_ID
.Result : le nom de variable est
CONFIG__WEBSITES__DEFAULT__SHIPPING__ORIGIN__COUNTRY_ID
Utilisation des variables d’environnement
Définissez des valeurs de configuration en tant que variables à l’aide du tableau associé $_ENV
de PHP. Vous pouvez définir les valeurs de tout script PHP qui s’exécute lors de l’exécution de Commerce.
index.php
ou pub/index.php
ne fonctionne pas toujours comme prévu, car différents points d’entrée d’application peuvent être utilisés en fonction de la configuration du serveur web. En plaçant des directives $_ENV
dans le fichier app/bootstrap.php
, quels que soient les différents points d’entrée de l’application, les directives $_ENV
s’exécutent toujours puisque le fichier app/bootstrap.php
est chargé dans le cadre de l’architecture Commerce.Voici un exemple de définition de deux valeurs $_ENV
:
$_ENV['CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME'] = 'http://search.example.com';
$_ENV['CONFIG__DEFAULT__GENERAL__STORE_INFORMATION__MERCHANT_VAT_NUMBER'] = '1234';
Un exemple détaillé est présenté dans la section Définir des valeurs de configuration à l’aide de variables d’environnement.
-
Pour utiliser les valeurs que vous définissez dans le tableau
$_ENV
, vous devez définirvariables_order = "EGPCS"
(Environnement, Get, Post, Cookie et Serveur) dans votre fichierphp.ini
. Pour plus d’informations, voir la documentation PHP. -
Pour Adobe Commerce sur l’infrastructure cloud, si vous tentez de remplacer les paramètres de configuration à l’aide de l’ interface web du projet, vous devez ajouter
env:
en préfixe au nom de la variable. Par exemple :