Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] DZ二次开发,怎么使用IDE进行代码调试?

[复制链接]
caifanzi 发表于 2012-8-28 12:50:13 | 显示全部楼层 |阅读模式
用什么IDE比较好?eclipse那样的。
站是不是站 发表于 2012-8-28 15:16:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| caifanzi 发表于 2012-8-29 08:16:56 | 显示全部楼层
自已搜索的。希望有高手再说说还有什么好的办法,这个方法觉得有些麻烦。

Zend Studio调试步骤

1、新建一个工程。

    “File”--“PHP Project”
       Contents选择“Create project at existing location(from exiting source)”,目录选择你要想包含进文件的所在目录,例如以上就设“D:\Inetpub\wwwroot\bbs”,至于工程名可以不是bbs,像 disduz,Zend不会在D:\Inetpub\wwwroot\bbs下新建一个disduz目录。

复制代码
2、左侧“PHP Explor”窗口,在你希望调试的php上点鼠标右键,弹出菜单中选“Debug As”——“1 PHP Script”,这时Zend就进入调试模式,你可以灵活使用断点,从“Variables”窗口能看到当前变量所有值,系统自有的, 像$_ENV、$_POST,及你自己定义的。

    Zend默认在第一条语会停一次,类似第一条语句有一个断点。
    为更好理解调试选项,建议打开帮助(放心,没多少字):
    Zend Studio User Guide > Tasks > Debugging Files and Applications
       Locally Debugging a PHP Script

复制代码
以上就是用Zend Stuio调试*.php基本操作。操作说完了,最后说下个人在调试过程中一点经验,希望对看到的人有点帮助。

用户一次操作往往由数个php文件组成。例如Discuz中编辑贴子,它涉及到viewthread.php(显示贴子),按下“编辑”,将执行 post.php。如果想知道post.php中编辑框里字符串是怎么来的,那该怎么办?——这似乎和两个页面相关,但Zend Studio确实一次只能调试一个php。

作为一条规则,显示帖子的viewthread.php一旦结束解析,它的那些文件内定义的变量就失效了!这就有个问题,post.php如何知道要编辑的是哪个板块哪个帖子呢?

这就要对php执行上下文要有一个大概了解。当一个php被运行时,一开始有效的变量除了超全局变量还有一种是参数中变量。就像以下这条语句:

    <A class=editpost
       onclick="floatwin('open_edit', this.href, 600, 410, '600,0');return false;"
       >编辑</A>

复制代码
它的作用是鼠标按了“编辑”后弹出post.php页,执行php页的URL是:

    http://www.freeors.com/bbs/post.php?action=edit&amp;fid=37&amp;tid=18725&amp;pid=25696

复制代码
这个URL包含了四个参数,对于post.php来说,就是等于给它的四个全局变量赋了值:

    $action=edit;
    $fid=37;
    $tid=18725;
    $pid=25696;

复制代码
知道这个后,你想知道post.php中编辑框里字符串是怎么来的,你就改下post.php,在“很开始处”添加以上那四条变量赋值语句,然后用Zend调试post.php。

对于要能编辑贴子,实际使用时还要涉及到权限、cookie等等,以上只是简单说下是这么个行为。

因为Zend一次调试只能调试一个php,当你遇到一个陌生php工程时,这就使得你需要尽快定位出要调试的是哪个php。个人采用方法:浏览那个网页, 保存成本地文件*.html,看*.html代码,就像上面要确定“编辑”帖子要调的是哪个*.php时, 就找到编辑那地方,通过看html代码知道要调试的是post.php,及需要一开始就生效变量有action、fid、tid和pid。
回复

使用道具 举报

sw08 发表于 2012-8-29 09:04:41 | 显示全部楼层
本地装个环境来调试是最直接但是也是最切合实际的。
回复

使用道具 举报

360424738 发表于 2012-8-29 09:36:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

小小太 发表于 2012-8-29 12:20:17 | 显示全部楼层
{:soso_e509:}           本地装个环境来调试是最直接但是也是最切合实际的。
回复

使用道具 举报

 楼主| caifanzi 发表于 2012-9-3 00:45:47 | 显示全部楼层
搞了好几天,终于搞定,可以截取断点什么的。。。。用的zend studio9
回复

使用道具 举报

梦想! 发表于 2012-9-3 10:50:15 | 显示全部楼层
{:soso_e891:}           本地装个环境来调试是最直接但是也是最切合实际的。
回复

使用道具 举报

xskwy 发表于 2012-9-3 21:41:07 | 显示全部楼层
厉害!强~~~~没的说了!
回复

使用道具 举报

de98441201 发表于 2015-7-28 09:11:03 | 显示全部楼层
谁知道x3的debug模式
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 08:40 , Processed in 0.033582 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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