当前位置: 首页 > news >正文

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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

相关文章:

  • springboot入门_email
  • Python MetaClass深入分析
  • Python中常见的字符串的操作方法:
  • 记录LNMP多主机架构Wordpress博客实施过程中的一些坑
  • 表单提交时问题总结
  • iOS:The operation couldn’t be completed. (DVTCoreSimulatorAdditionsErrorDomain error 0.)
  • python关于标识符说明
  • 类的自动加载
  • 【DP复习】背包 ovo
  • CSS3 Transform变形(3D转换)
  • Python——数据存储:XML操作
  • python 求助!
  • OpenGL step by step 38 : Skeletal Animation with Assimp
  • 顺为资本第四期美元基金募集完成 规模12.1亿美元
  • 【经验分享】:如何将PDF格式的文件进行翻译
  • php的引用
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【Leetcode】104. 二叉树的最大深度
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 2017年终总结、随想
  • css选择器
  • Java方法详解
  • Java深入 - 深入理解Java集合
  • JS函数式编程 数组部分风格 ES6版
  • js学习笔记
  • Objective-C 中关联引用的概念
  • Solarized Scheme
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Sublime Text 2/3 绑定Eclipse快捷键
  • vue:响应原理
  • web标准化(下)
  • Windows Containers 大冒险: 容器网络
  • 产品三维模型在线预览
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 复习Javascript专题(四):js中的深浅拷贝
  • 技术发展面试
  • 类orAPI - 收藏集 - 掘金
  • 排序算法学习笔记
  • 新版博客前端前瞻
  • 最简单的无缝轮播
  • 阿里云ACE认证学习知识点梳理
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​卜东波研究员:高观点下的少儿计算思维
  • $.ajax()方法详解
  • $jQuery 重写Alert样式方法
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (pojstep1.3.1)1017(构造法模拟)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (zhuan) 一些RL的文献(及笔记)
  • (二)Linux——Linux常用指令
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (循环依赖问题)学习spring的第九天
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)