Maison >développement back-end >tutoriel php >Images Docker flexibles avec des variables d'environnement PHP INI
Ce didacticiel montre comment utiliser les variables d'environnement pour configurer XDebug dans une application PHP 8.4 Dockrised, améliorer la flexibilité et éviter les paramètres INI codés en dur. Les paramètres XDebug du didacticiel précédent ont codé en dur, limitant la personnalisation du développeur. Cette approche permet à chaque développeur de gérer sa configuration XDebug sans modifier l'image Docker.
PHP 8.3 et les versions ultérieures prennent en charge les valeurs de secours dans les fichiers INI à l'aide de variables d'environnement, simplifiant la configuration. Auparavant, le fichier xdebug.ini
ressemblait à ceci:
<code>; build/php/conf.d/xdebug.ini file [xdebug] xdebug.mode = debug xdebug.client_host = host.docker.internal ; Or use the host machine IP address: ; xdebug.client_host = 192.168.86.203 xdebug.start_with_request = yes</code>
Cette méthode nécessite des mises à jour manuelles de fichiers INI pour chaque développeur, ce qui est inefficace. Une approche supérieure utilise des variables d'environnement:
<code>services: app: # ... other configurations ... environment: XDEBUG_CONFIG: "client_host=0.0.0.0 start_with_request=yes" XDEBUG_MODE: "debug,develop"</code>
Le stockage de ces variables d'environnement dans un fichier .docker.env
non parrainé permet la personnalisation par développement. Alternativement, vous pouvez tirer parti des variables d'environnement directement dans le fichier xdebug.ini
:
<code>; build/php/conf.d/xdebug.ini file [xdebug] xdebug.mode = ${PHP_XDEBUG_MODE:-debug,develop} xdebug.client_host = ${PHP_XDEBUG_CLIENT_HOST:-host.docker.internal} xdebug.start_with_request = ${PHP_XDEBUG_START_WITH_REQUEST:-trigger}</code>
Le préfixe PHP_
évite de nommer les conflits et identifie clairement les variables d'environnement ini. XDEBUG_MODE
et XDEBUG_CONFIG
sont réservés pour la configuration Direct Xdebug.
Pour vérifier les paramètres, ajoutez phpinfo(); exit;
à public/index.php
ou utilisez les commandes suivantes dans le conteneur Docker:
$ docker compose up --build -d $ docker compose exec app bash $ php -i | grep xdebug\.start_with_request
Pour la personnalisation locale, ajoutez un env_file
à votre docker-compose.yaml
:
services: app: # ... other configurations ... env_file: - .docker.env
Créer .docker.env
(Ajouter à .gitignore
) et .docker.env.example
Fichiers avec paramètres par défaut:
<code>PHP_XDEBUG_MODE=debug PHP_XDEBUG_CLIENT_HOST=host.docker.internal # Or use your computer's local network IP # PHP_XDEBUG_CLIENT_HOST=192.168.86.250 PHP_XDEBUG_START_WITH_REQUEST=trigger</code>
reconstruire le conteneur pour voir les modifications reflétées. Les paramètres mis à jour seront visibles dans phpinfo()
:
Cette méthode permet une configuration XDEBUG flexible sans modifier le processus de build d'image. Alors que les variables d'environnement Direct Xdebug offrent une simplicité, la méthode INI fournit un contrôle plus complet, car tous les paramètres ne sont pas configurables via XDEBUG_CONFIG
. Choisissez l'approche la mieux adaptée à vos besoins.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!