Les méthodes de débogage en PHP sont : 1. Ajoutez les instructions echo, var_dump, print_r et exit dans le code PHP et imprimez les informations via le navigateur pour le débogage ; 2. Utilisez Xdebug pour le débogage ;
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
Déboguer en imprimant les informations depuis le navigateur
méthode
Ajoutez echo, var_dump, print_r et quittez le code et affichez la sortie dans le navigateur.
Avantages et inconvénients
Avantages :
Inconvénients :
Conseils
Lors du débogage, afin de formater les variables de sortie, vous devez souvent implémenter votre propre dump () dans la fonction code projet>. Avec Composer, la fonction <code>dump()
du package symfony/var-dumper
peut être installée globalement, la rendant disponible à tous les projets sans modifier le projet. dump()
函数。利用 Composer,可以全局安装 symfony/var-dumper
包中的 dump()
函数,使所有项目都可以使用,而无需改动项目。
symfony/var-dumper
包: ${HOME}/.config/composer
目录composer global require symfony/var-dumper
php.ini
文件,执行 PHP 代码之前先 include 指定的文件auto_prepend_file = ${HOME}/.config/composer/vendor/autoload.php
使用 Xdebug 进行调试
XDebug 是 C/S 结构,其中 Client 是 PHP 中安装的 Xdebug,Server 是 IDE 中安装的插件,使用 DBGP 协议通信。PHP 运行脚本时,通过 Xdebug 插件向 IDE 发送调试信息,并接收 IDE 发过来的控制信号。
需要为 PHP 安装并开启 Xdebug,然后设置 IDE 的 Xdebug 插件,使二者可以通信。
优缺点
XDEBUG_SESSION_START
参数Web App 调试
对于 web 应用,要开启 Xdebug 调试模式,必须在浏览器发送的请求中添加额外的标志。可以在 GET/POST/Cookie 参数中添加 XDEBUG_SESSION_START=session_name
,这样 Xdebug 就明白这个请求需要调试,去连接 IDE。
但每次手工设置也很麻烦,有两种方式简化操作:
XDEBUG_SESSION_START=session_name
。通过 console 终端进行调试(CLI 方式)
对于非 web 应用,例如定时任务或单元测试,可以直接在控制台进行调试。
PhpStorm 中通过 Alt+F12
快捷键打开命令行终端。但是因为 IDE 中只能显示一个终端,在开启调试后的调试终端会覆盖命令行终端,所以还是单独开一个命令行终端吧(Windows 下可以使用 DOS 窗口或 PowerShell)。
方法及原理
web 应用通过 GET/POST/Cookie 参数标志调试请求,而非 web 应用则通过在命令行终端设置环境变量来开启调试。
两步:
XDEBUG_CONFIG="idekey=session_name"
,这个 idekey 需要跟 php.ini
symfony/var-dumper
globalement : ${HOME}/.config/composer
D:\lnmp\php72\php.exe -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9001 -dxdebug.remote_host=127.0.0.1 D:\lihongfeng\workspace\untitled\index.php
Modification du fichier php.ini
, inclure le fichier spécifié avant d'exécuter le code PHP
export XDEBUG_CONFIG="idekey=session_name" // 设置环境变量 echo $XDEBUG_CONFIG // 查看环境变量 unset XDEBUG_CONFIG // 删除环境变量
XDEBUG_SESSION_START=session_name
dans les paramètres GET/POST/Cookie, afin que Xdebug comprenne que cette requête doit être déboguée et se connecte à l'EDI. 🎜🎜Mais le réglage manuel à chaque fois est également gênant. Il existe deux façons de simplifier l'opération : 🎜🎜🎜Utilisez la méthode fournie par l'IDE. Pour PhpStorm, consultez Débogage d'applications Web PHP avec exécuter des configurations de débogage. Lorsque vous l'utilisez, vous devez configurer le serveur Web dans l'IDE, puis configurer une application Web PHP, cliquer sur le bouton Déboguer pour démarrer le débogage, puis l'IDE ouvrira automatiquement le navigateur et entrera l'URL, et ajoutera XDEBUG_SESSION_START =nom_session
. 🎜🎜Utilisez un plug-in de navigateur Après avoir activé le commutateur de débogage du plug-in, le plug-in peut automatiquement apporter le cookie correspondant dans la requête. Pour Chrome, vous pouvez installer l'assistant Xdebug. 🎜🎜🎜🎜🎜Débogage via le terminal console (mode CLI) 🎜🎜🎜🎜Pour les applications non Web, telles que les tâches planifiées ou les tests unitaires, vous pouvez déboguer directement dans la console. 🎜🎜Dans PhpStorm, utilisez la touche de raccourci Alt+F12
pour ouvrir le terminal de ligne de commande. Cependant, comme un seul terminal peut être affiché dans l'IDE, le terminal de débogage une fois le débogage activé couvrira le terminal de ligne de commande, il est donc préférable d'ouvrir un terminal de ligne de commande séparé (vous pouvez utiliser une fenêtre DOS ou PowerShell sous Windows ). 🎜🎜🎜Méthodes et principes🎜🎜🎜Les applications Web déboguent les requêtes via les indicateurs de paramètres GET/POST/Cookie, tandis que les applications non Web permettent le débogage en définissant des variables d'environnement dans le terminal de ligne de commande. 🎜🎜Deux étapes : 🎜🎜🎜Définissez la variable d'environnement XDEBUG_CONFIG="idekey=session_name"
Cette idekey doit être la même que celle définie dans la section Xdebug de php.ini<. /code>. 🎜🎜Exécutez le script dans le terminal de ligne de commande. Une fois exécuté, le terminal de débogage de l'IDE sera évoqué, permettant un débogage en une seule étape, et les résultats de sortie seront affichés dans le terminal de ligne de commande en temps réel. 🎜🎜🎜🎜🎜🎜IDE fournit généralement des opérations de raccourci pour PHPStorm, vous pouvez vous référer à Débogage des scripts PHP CLI avec PhpStorm. 🎜🎜Après avoir démarré le débogage via l'IDE, l'IDE démarrera le plug-in Xdebug pour écouter un certain port (PhpStorm est par défaut 9000, mais cela entre en conflit avec PHP-FPM et peut être modifié en 9001) pour obtenir les informations de débogage renvoyées. par le serveur PHP. 🎜D:\lnmp\php72\php.exe -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9001 -dxdebug.remote_host=127.0.0.1 D:\lihongfeng\workspace\untitled\index.php
Copier après la connexionCopier après la connexion设置、查看和释放环境变量
- Linux
export XDEBUG_CONFIG="idekey=session_name" // 设置环境变量
echo $XDEBUG_CONFIG // 查看环境变量
unset XDEBUG_CONFIG // 删除环境变量
Copier après la connexionCopier après la connexion- Windows
set XDEBUG_CONFIG="idekey=session_name" // 设置环境变量
echo %XDEBUG_CONFIG% // 查看环境变量
set XDEBUG_CONFIG // 查看环境变量
set XDEBUG_CONFIG= // 删除环境变量
Copier après la connexion推荐学习:《PHP视频教程》
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!