PHP CLI应用的调试原理
我们在Eclipse里选中一个PHP文件,右键选择Debug As->PHP CLI Application。
所谓CLI应用,是指这种脚本文件不需要任何Web服务器即可运行,当然, PHP运行时还是需要的。
我们在弹出的debug窗口里看到了XDebug:
XDebug是PHP调试的利器。在我的文件夹C:MyAppwampinphpphp5.5.12里面有个php.ini配置文件,文件的末尾有这样一个配置:
; XDEBUG Extension
zend_extension = “C:/MyApp/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll”
;
[xdebug]
xdebug.remote_enable = off
xdebug.profiler_enable = off
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的原创技术文章,请关注公众号"汪子熙".
相关文章
- php new reflectionclass,PHP: ReflectionClass – Manual
- PHP 存储数据到 MySQL 数据库(php写入mysql)
- 基于PHP的MySQL访问方式(php访问mysql)
- 部署PHP应用:Linux服务器上的挑战(linux部署php)
- 让Linux(Debian/Ubuntu、RHEL/CentOS)的nginx(Web服务器)支持PHP
- 步骤步步骤前行:安装PHP与MySQL(php与mysql安装)
- 初探Linux中的PHP文件之旅(linux创建php文件)
- 在 Linux 中编译PHP程序(linux编译php)
- PHP使用Redis扩展连接Redis服务(php开启redis)
- Linux下PHP的安装与配置(linux安装配置php)
- PHP在Linux上攀登新高度(php要linux)
- MySQL PHP长连接:持久化提升应用性能(mysql php长连接)
- 深入理解PHP操作MySQL类库的精髓(php操作mysql类库)
- PHP Redis实时监控系统的应用(php redis 监控)
- PHP管理MSSQL的方法探索(Php管理mssql)
- PHP如何操作MSSQL数据库(php怎样使用mssql)
- PHP图片上传至MySQL:实现快速可靠的数据存储(php图片上传mysql)
- PHP网页过期时间的控制代码
- php与paypal整合方法
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- 利用php递归实现无限分类格式化数组的详解
- php另类上传图片的方法(PHP用Socket上传图片)
- 二进制交叉权限微型php类分享
- 在PHP中使用X-SendFile头让文件下载更快
- Linux+php+apache+oracle环境搭建之CentOS下源码编译安装PHP