`
JerryWang_SAP
  • 浏览: 1002679 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

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

 

 
 
0
0
分享到:
评论

相关推荐

    PHP-CLI:用于创建 CLI 应用程序的小型 PHP 框架

    CLI应用的调试通常依赖于标准输出和错误输出。PHP-CLI框架可能提供日志记录功能,帮助开发者跟踪应用运行状态和错误信息。 8. **扩展与自定义** 虽然PHP-CLI是一个小型框架,但它通常具有高度的可扩展性。你可以...

    linux下独立程序执行php文件

    PHP通常作为一个服务器模块(例如Apache或Nginx)运行,或者作为CLI(命令行接口)脚本解释器。然而,如果想要一个独立的二进制文件来执行PHP,这通常意味着它包含了一个嵌入式的PHP解释器,或者是对PHP源代码进行...

    细说PHP源码

    11. **CLI模式**:除了Web应用外,PHP还可以在命令行环境下运行。了解CLI模式下PHP的特性,如命令行脚本的编写和运行。 12. **PHP扩展开发**:如何编写和编译自定义的PHP扩展,以满足特定需求或优化性能。 配合...

    PHP manual pdf中文版

    13. **PHP CLI(命令行接口)**:除了Web开发,PHP也可以作为命令行脚本语言,用于自动化任务或服务器维护。 这个PDF文档会详细介绍以上所有内容,并提供实例代码和解释,帮助读者深入理解PHP的工作原理和使用方法...

    win32_64redis_ igbinary.zip

    描述中提到的问题是“phpstudy在CLI模式下报错:php_redis.dll' - %1 不是有效的Win32应用程序”,这表明用户在尝试运行PHPStudy集成环境时,遇到了与php_redis.dll扩展相关的错误,提示该动态链接库文件可能与当前...

    php-5.3.10.tar.gz

    《PHP 5.3.10源码解析与应用探讨》 PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,尤其适用于Web开发,并可嵌入到HTML中。本文将深入探讨名为“php-5.3.10.tar.gz”的压缩包文件,该文件...

    php socket聊天室

    下面将详细讨论PHP Socket、聊天室的实现原理以及如何通过cmd运行`start_for_win.bat`来监控服务。 首先,我们来理解一下PHP Socket。Socket是计算机网络中的通信端点,它提供了一种在不同主机之间传输数据的机制。...

    php中文参考文档chm

    15. **PHP CLI**:探讨PHP在命令行环境下的应用,包括编写命令行脚本、批处理任务等。 通过《PHP中文参考手册.chm》,无论是初学者还是有经验的开发者,都能找到所需的信息,逐步提升自己的PHP编程技能。下载并解压...

    php帮助文档

    **PHP帮助文档详解** PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在Web开发领域中被广泛...通过深入阅读和实践,你可以更好地理解PHP的工作原理,提高编程效率,开发出更加高效、安全的应用。

    Advanced PHP Programming(高级PHP编程)

    - **执行引擎**:深入研究PHP的执行引擎工作原理。 2. **内存管理** - **内存模型**:解释PHP中的内存分配与回收机制。 - **性能考量**:讨论不同内存管理策略对性能的影响。 3. **性能监控与调试** - **工具...

    cli:报告与Symfony CLI相关的问题的存储库

    Symfony CLI(命令行界面)是Symfony项目的一部分,它是一个强大的工具,用于帮助PHP开发者更高效地构建、管理和部署他们的应用程序。这个"cli"存储库专门用于收集和解决与Symfony CLI相关的任何问题,确保用户能够...

    基于PHP的KISETL 开源轻量级数据迁移程序 php版.zip

    9. **测试与调试**:在实际应用前,需要进行测试以确保数据迁移的正确性和完整性。 总的来说,这个基于PHP的KISETL数据迁移程序提供了一种使用PHP进行数据迁移的方法,对PHP开发者来说是一个实用的工具,同时也为...

    MixPHP内置Server基于Swoole的次世代PHP开发框架

    开发文档完善是 MixPHP 的一大亮点,它提供了详尽的文档,覆盖了从安装、配置、开发到调试的全过程,帮助开发者快速上手并深入理解框架原理。此外,MixPHP 社区活跃,开发者可以在社区中提问交流,获取及时的技术...

    PHP实例开发源码-AirFrameWork PHP框架.zip

    【PHP实例开发源码-AirFrameWork PHP框架.zip】是一个包含PHP编程...通过研究这些源码,开发者不仅可以了解AirFrameWork的内部工作原理,还能学习到良好的编程实践和设计模式,为自己的PHP开发技能树增添重要的分支。

    php定时任务框架使用案例源码.zip

    在IT行业中,PHP是一种广泛应用的服务器端脚本语言,尤其在Web开发领域有着广泛的使用。...因此,深入理解和掌握PHP定时任务的实现原理和框架使用方法,对于任何PHP开发者来说都是一项重要的技能。

    基于PHP的ThinkPHPPHP框架完整包源码.zip

    下载并解压"基于PHP的ThinkPHPPHP框架完整包源码.zip"后,开发者可以通过阅读源码,了解其内部实现原理,包括控制器的运作、模型的创建、视图的渲染等。同时,可以尝试修改源码,创建自己的项目,加深对框架的理解。...

    PHP系统开发框架QuickPHP.zip

    七:您想要一款可支持 PHP CLI 模式运行以方便你进行系统级的Crontab开发的框架吗?八:您想要一款基本使用方法和 Zend Framework 一致(因为您喜欢它)但远比它快速的框架吗?九:您想要一款可以轻松引入 Zend ...

    php编辑器,C语言编写

    PHP是一种广泛应用的开源脚本语言,主要用于Web开发,而C语言则是一种底层、通用的编程语言,适用于系统编程和开发各种软件,包括编辑器。当我们提到"PHP编辑器,C语言编写"时,这意味着有人用C语言实现了一个用于...

    学习PHP环境

    文件的位置、语法及各个指令的作用对于优化PHP应用性能、调试问题等方面有着极其重要的意义。 #### `php.ini`文件的位置 PHP会按照一定的顺序搜索`php.ini`文件: 1. **SAPI模块特定位置**:根据服务器配置而异。...

Global site tag (gtag.js) - Google Analytics