禅道扩展
598443

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

提问者叛逆的火腿肠 答案数1 阅读数182 发表时间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 line 2014: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 line 20 when visiting user-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 line 3492

禅道版本:禅道开源版 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
调试日志存到哪里了,在哪个目录下?
😁
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调试模式里的网络模块,看到对应的打印输出。
联系我们
联系人
高丽亚/高级客户经理
电话(微信)
17667930330
QQ号码
3645260865
联系邮箱
gaoliya@chandao.com
返回顶部
高丽亚
高级客户经理
17667930330
3645260865
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。 问题反馈反馈点击这里,让我们聆听您的建议与反馈。