PHP CLI應用的調試原理

咱們在Eclipse裏選中一個PHP文件,右鍵選擇Debug As->PHP CLI Application。php

所謂CLI應用,是指這種腳本文件不須要任何Web服務器便可運行,固然, PHP運行時仍是須要的。服務器

咱們在彈出的debug窗口裏看到了XDebug:session

XDebug是PHP調試的利器。在個人文件夾C:MyAppwampinphpphp5.5.12裏面有個php.ini配置文件,文件的末尾有這樣一個配置:spa

; XDEBUG Extensionpwa

zend_extension = "C:/MyApp/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll"debug

;調試

[xdebug]進程

xdebug.remote_enable = offip

xdebug.profiler_enable = offrem

xdebug.profiler_enable_trigger = off

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

xdebug.profiler_output_dir = "C:/MyApp/wamp/tmp"

xdebug.show_local_vars=0

這裏實際上就指明瞭XDEBUG的位置:

那麼Eclipse?

使用任務管理器查看,當我用Eclipse調試PHP CLI應用時,出現了一個PHP.exe進程:

命令提示行:

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

-n 選項:不使用全局的php.ini文件

-c 選項:使用-c後面指定的php.ini, 即C:Usersi042416AppDataLocalTempphp-inisession2307282238017995350.tmpphp.ini

-d 選項:臨時指定一個php.ini裏沒有的參數,即asp_tags=off

再看看這個我開始CLI調試後才臨時生成的php.ini文件:

雖然有70多k,可是絕大多數是分號開頭的註釋,只有最後幾行纔是有效信息:

但願本文對你們理解Eclipse裏使用XDebug進行PHP CLI應用的調試原理有所幫助。

要獲取更多Jerry的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼:

相關文章
相關標籤/搜索