禅道扩展
598443

尝试写一个插件,但是报错,有什么方法可以打印一些执行日志辅助调试?已解决悬赏5积分

提问者叛逆的火腿肠答案数1阅读数415发表时间2025-02-08 14:15:06

docker安装了开源版18.12,添加了一个extension/custom/user/ext/model/test.php。代码如下:


class testUserModel extends userModel
{
    public function login($account, $password)
    {
        if ($account !== 'admin'){
          /* 怎么弹个消息 是不是进来这个函数了?*/
          echo("进来了吗");
        }
        return parent::login($account, $password);
    }
}

刷新页面出来:

Parse error: syntax error, unexpected 'class' (T_CLASS), expecting function (T_FUNCTION) or const (T_CONST) in/apps/zentao/tmp/model/open/rnd/tmpuser.php on line2014:13:09 syntax error, unexpected 'class' (T_CLASS), expecting function (T_FUNCTION) or const (T_CONST) in/apps/zentao/tmp/model/open/rnd/tmpuser.php on line20 when visitinguser-loginFatal error: Uncaught EndResponseException in /apps/zentao/framework/base/router.class.php:3492 Stack trace: #0 /apps/zentao/framework/helper.class.php(323): EndResponseException::create('') #1 /apps/zentao/framework/base/router.class.php(3148): helper::end() #2 /apps/zentao/framework/router.class.php(350): baseRouter->saveError(4, 'syntax error, u...', '/apps/zentao/tm...', 20) #3 /apps/zentao/framework/base/router.class.php(3003): router->saveError(4, 'syntax error, u...', '/apps/zentao/tm...', 20) #4 [internal function]: baseRouter->shutdown() #5 {main} thrown in/apps/zentao/framework/base/router.class.php on line3492

禅道版本:禅道开源版 18.12

安装包类型:源码包

操作系统:Ubuntu

客户端浏览器:Chrome

设置备注
内容
答案列表
😁
2025/02/08 最佳答案

可以打开禅道服务器代码目录 zentao/config/my.php中debug的值改成true,显示调试日志;

调试时,可以使用

a("debug info");
a($tempVar);
die;

的方式显示数据打断点调试;

另外,根据您提供的代码,在 extension/custom/user/ext/model/test.php 文件中,不需要写class信息,直接编写方法即可。

具体的二开可以参考帮助文档:https://www.zentao.net/book/extension-new/intro-1256.html

😎
叛逆的火腿肠2025/02/08
调试日志存到哪里了,在哪个目录下?
1条回复 回复
😁
李硕2025/02/08
调试日志会直接输出到页面上;
php产生的日志也可以在禅道服务器代码目录zentao/tmp/log/目录下,php开头今天的日志里看到。
回复
😁
李硕2025/02/08
调试日志会直接输出到页面上; php产生的日志也可以在禅道服务器代码目录zentao/tmp/log/目录下,php开头今天的日志里看到。
回复
😎
叛逆的火腿肠2025/02/08
好的 谢谢 我先试试
回复
😎
叛逆的火腿肠2025/02/08
启动debug我看到tmp/log下有一条这样的日志,说$tempVar没定义,a("debug info"); 这个已经执行了,但是在log里没有看到 debug info 这个字符串。a()函数是个写日志函数吗?直接调用就行,还是需要做什么配置?
16:11:01 Undefined variable $tempVar in D:\software\ZenTao\app\zentao\tmp\model\open\rnd\user.php on line 24 when visiting user-login
回复
😁
李硕2025/02/08
a();就相当于一个echo,可以提供一些数据打印,以便于进行调试,查看自己定义的变量等。也可以使用var_dump();输出对应的数据。括号里输出什么可以根据自己的需要填写。
回复
😎
叛逆的火腿肠2025/02/08
a("debug info"); 这个已经执行了, “debug info”是不是写到phpxx.log里?我在log里没看到呢
回复
😁
李硕2025/02/08
已微信联系用户,可以通过在浏览器中输入对应的URL地址,在F12调试模式里的网络模块,看到对应的打印输出。
回复
联系我们
联系人
杨苗/高级客户经理
电话(微信)
13165050229
QQ号码
2692096539
联系邮箱
yangmiao@chandao.com
其他相关问答
提问者: aa1020967789 于 2017-09-283621次浏览,1个答案
597335
已解决
悬赏5积分
提问者: m_666a6b386e064 于 2024-06-13443次浏览,1个答案
提问者: carol_huang 于 2012-02-132175次浏览,1个答案
提问者: jy02444572 于 2017-04-051348次浏览,1个答案
596141
已解决
悬赏21积分
提问者: wx_634e7ea5d3d85 于 2022-10-19595次浏览,1个答案
返回顶部
客服头像
杨苗
高级客户经理
客服微信
13165050229
2692096539
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。问题反馈反馈点击这里,让我们聆听您的建议与反馈。