设为首页 收藏本站
查看: 930|回复: 0

[经验分享] zend studio开发php 实现控制台输出以及单步调试

[复制链接]

尚未签到

发表于 2017-4-10 13:03:42 | 显示全部楼层 |阅读模式
  php的开发工具
  最好用的是zend studio,它是通过eclipse集成php插件开发的,他的使用操作与eclipse类似,所以从java开发转向php开发,首选zend studio
  zend studio做为ide的缺陷
  理论上讲所有的程序开发都可以采用文本编辑代码,使用命令行执行编译,再发布到应用服务器上;但是此种开发方式第一容易写错代码,第二开发过程中无法调试,第三所有的工作都需要手工完成开发工作量巨大;因此大多数人习惯使用开发工具开发也即是ide;php开发也不例外,所以我选用了zend studio作为开发工具,默认情况下zend studio可以自动检查拼写错误,可以辅助生成开发配置、部分代码;但是请注意它无法在控制台打印php程序中的输出并且无法单步调试应用程序,这使得它作为ide功能大打折扣,为此我希望它能具备类似开发java程序的控制台打印以及单步调试功能。
  控制台打印实现方式
  控制台打印的实现网上已经有现成的实现方式:见http://club.topsage.com/thread-2450808-1-1.html,原理是在php执行过程中开启一个线程监控主线程的打印,接收到打印后连接远程socket,并写入到远程socket;在远程socket中即可实现执行过程中的控制台打印;
  单步调试实现方式:
  目前可以集成在zend studio中的调试器有zend debuger以及xdebug;由于网上传言zend debuger不支持php5.3以上版本,而且xampp中默认的配置是xdebug,所以这里我直接采用xdebug作为调试器;关于如何配置php的xdebug引擎以及zend studio中如何设置xdebug,可以参看http://www.leapsoul.cn/?p=958;我补充两点:
  1.zend studio7(其他版本不清楚),默认的调试工具是zend debuger,没有xdebug,需要设置zend studio中的插件的配置文件以开启xdebug,开启方式

打开Zend Studio 7安装目录\plugins\com.zend.php_7.0.0.v20090712-1841目录,目录下有一个plugin_customization.ini文件,打开文件找到
org.eclipse.ui.workbench/UIActivities.com.zend.php.debug.ui.XDebugActivity=false
这行,改成true,保存后,重新启动Zend Studio 7,php debug里面就可以选择Xdebug进行调试了。
来自:http://beiersi.iteye.com/blog/452322
  2.php.ini中设置有有几个关键点需要注意
  xdebug.trace_output_dir和xdebug.profiler_output_dir 目录必须是一个已经创建好的可以访问的目录,否则php执行中无法产生调试日志信息;进而导致zend studio中无法接收到调试信息并无法单步调试
  3.配置好xdebug后在需要调试的项目的php文件中添加好断点,并右键入口php文件点击debug as php web即可开始对php项目调试;也可以在火狐或者chrome中安装xdebug插件实现通过浏览器启动zend studio的调试器,操作方式如:

使用步骤:
chrome浏览器安装xdebug helper插件
在eclipse中找到 preferences->php->debug->installed debugger,在管理界面上双击xdebug,将accept remote session(JIT)修改为localhost
chrome浏览器上需要调试的站点,地址栏右边会有一个小虫子,点击,变为绿色的就是启动,允许发送调试请求。然后刷新页面,eclipse就会自动进入调试状态
摘自http://blog.csdn.net/caoyong2619/article/details/8160684

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-362979-1-1.html 上篇帖子: PHP __set() __get() __isset() __unset() 四个方法的应用 下篇帖子: PHP包含文件(require/include/require_once/include_once/__autoload/spl_autoload_xxx)分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表