PHP CLI应用的调试原理是什么

PHP CLI应用的调试原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

我们在Eclipse里选中一个PHP文件,右键选择调试作为→PHP CLI应用程序。

 PHP CLI应用的调试原理是什么

所谓CLI应用,是指这种脚本文件不需要任何Web服务器即可运行,当然,PHP运行时还是需要的。

我们在弹出的调试窗口里看到了XDebug:

 PHP CLI应用的调试原理是什么

XDebug是PHP调试的利器。在我的文件夹C: MyAppwampinphpphp5.5.12里面有个PHP . ini中配置文件,文件的末尾有这样一个配置:

;XDEBUG扩展

zend_extension=癈:/MyApp/里面/bin/php/php5.5.12/zend_ext/php_xdebug 2.2.5 - 5.5 vc11.dll"

,

[XDEBUG]

XDEBUG。remote_enable=

xdebug。profiler_enable=

xdebug。profiler_enable_trigger=

xdebug。profiler_output_name=cachegrind.out. % t % p

xdebug。profiler_output_dir=癈:/MyApp/里面/tmp"

xdebug。show_local_vars=0

这里实际上就指明了XDEBUG的位置:

 PHP CLI应用的调试原理是什么

那么Eclipse ?

使用任务管理器查看,当我用Eclipse调试PHP CLI应用时,出现了一个PHP。exe进程:

 PHP CLI应用的调试原理是什么

命令提示行:

C: MyAppwampinphpphp5.5.12php。exe - n - C C: Usersi042416AppDataLocalTempphp-inisession2307282238017995350.tmpphp。ini - d asp_tags=off - d short_open_tag=C: Usersi042416scp20180425 ewfile。php

- n选项:不使用全局的php。ini文件

- c选项:使用- c后面指定的php。ini,即C: Usersi042416AppDataLocalTempphp-inisession2307282238017995350.tmpphp。ini

- d选项:临时指定一个php . ini里没有的参数,即asp_tags=了

再看看这个我开始CLI调试后才临时生成的php。ini文件:

 PHP CLI应用的调试原理是什么

虽然有70多k,但是绝大多数是分号开头的注释,只有最后几行才是有效信息:

 PHP CLI应用的调试原理是什么

PHP CLI应用的调试原理是什么