PHP의 디버깅 방법은 다음과 같습니다. 1. PHP 코드에 echo, var_dump, print_r 및 종료 문을 추가하고 디버깅을 위해 브라우저를 통해 정보를 인쇄합니다. 2. 디버깅을 위해 Xdebug를 사용합니다. 3. 콘솔 터미널을 통해 디버그합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
브라우저에서 정보를 인쇄하여 디버그
방법
echo, var_dump, print_r을 추가하고 코드를 종료하고 브라우저에서 출력을 확인하세요.
장점과 단점
장점:
단점:
Tips
디버깅할 때 출력 변수의 형식을 지정하기 위해 자체 덤프( ) 프로젝트 코드> 함수에 있습니다. Composer를 사용하면 symfony/var-dumper
패키지의 dump()
함수를 전역적으로 설치할 수 있으므로 프로젝트를 수정하지 않고도 모든 프로젝트에서 사용할 수 있습니다. 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
패키지를 전역적으로 설치합니다. ${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
php.ini
파일 수정, PHP 코드를 실행하기 전에 지정된 파일 포함
export XDEBUG_CONFIG="idekey=session_name" // 设置环境变量 echo $XDEBUG_CONFIG // 查看环境变量 unset XDEBUG_CONFIG // 删除环境变量
XDEBUG_SESSION_START=session_name
을 추가하면 Xdebug가 이 요청을 디버깅해야 한다는 것을 이해하고 IDE에 연결할 수 있습니다. 🎜🎜하지만 매번 수동으로 설정하는 것도 귀찮습니다. 작업을 단순화하는 두 가지 방법이 있습니다. 🎜🎜🎜IDE에서 제공하는 방법을 사용하세요. PhpStorm의 경우 디버그 실행 구성을 사용하여 PHP 웹 애플리케이션 디버깅을 참조하세요. 이를 사용할 때 IDE에서 웹 서버를 구성한 다음 PHP 웹 애플리케이션을 설정하고 디버그 버튼을 클릭하여 디버깅을 시작해야 합니다. 그러면 IDE가 자동으로 브라우저를 열고 URL을 입력하고 XDEBUG_SESSION_START를 추가합니다. =세션_이름
. 🎜🎜브라우저 플러그인을 사용하세요. 플러그인의 디버깅 스위치를 켜면 플러그인이 자동으로 요청에 해당 쿠키를 가져올 수 있습니다. Chrome의 경우 Xdebug 도우미를 설치할 수 있습니다. 🎜🎜🎜🎜🎜콘솔 터미널을 통한 디버깅(CLI 모드) 🎜🎜🎜🎜예약된 작업이나 단위 테스트 등 웹이 아닌 애플리케이션의 경우 콘솔에서 직접 디버깅할 수 있습니다. 🎜🎜PhpStorm에서 명령줄 터미널을 열려면 Alt+F12
단축키를 사용하세요. 하지만 IDE에서는 하나의 터미널만 표시할 수 있기 때문에 디버깅을 켠 후 디버깅 터미널이 명령줄 터미널을 덮게 되므로 별도의 명령줄 터미널을 여는 것이 좋습니다(Windows에서는 DOS 창이나 PowerShell을 사용할 수 있습니다) ). 🎜🎜🎜방법 및 원리🎜🎜🎜웹 애플리케이션은 GET/POST/Cookie 매개변수 플래그를 통해 요청을 디버그하는 반면 웹이 아닌 애플리케이션은 명령줄 터미널에서 환경 변수를 설정하여 디버깅을 활성화합니다. 🎜🎜2단계: 🎜🎜🎜환경 변수 XDEBUG_CONFIG="idekey=session_name"
를 설정합니다. 이 idekey는 php.ini<의 Xdebug 섹션에 설정된 idekey와 동일해야 합니다. /코드>. 🎜🎜명령줄 터미널에서 스크립트를 실행하세요. 실행되면 IDE의 디버그 터미널이 호출되어 단일 단계 디버깅이 가능하고 출력 결과가 실시간으로 명령줄 터미널에 표시됩니다. 🎜🎜🎜🎜🎜🎜IDE는 일반적으로 PHPStorm의 경우 PhpStorm을 사용하여 PHP CLI 스크립트 디버깅을 참조할 수 있습니다. 🎜🎜IDE를 통해 디버깅을 시작한 후 IDE는 Xdebug 플러그인을 시작하여 특정 포트(PhpStorm의 기본값은 9000이지만 이는 PHP-FPM과 충돌하므로 9001로 변경할 수 있음)를 수신하여 반환된 디버깅 정보를 얻습니다. 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
로그인 후 복사로그인 후 복사设置、查看和释放环境变量
- Linux
export XDEBUG_CONFIG="idekey=session_name" // 设置环境变量
echo $XDEBUG_CONFIG // 查看环境变量
unset XDEBUG_CONFIG // 删除环境变量
로그인 후 복사로그인 후 복사- Windows
set XDEBUG_CONFIG="idekey=session_name" // 设置环境变量
echo %XDEBUG_CONFIG% // 查看环境变量
set XDEBUG_CONFIG // 查看环境变量
set XDEBUG_CONFIG= // 删除环境变量
로그인 후 복사推荐学习:《PHP视频教程》
위 내용은 PHP의 디버깅 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!