gpt4 book ai didi

debugging - Prestashop 调试 Hook

转载 作者:行者123 更新时间:2023-12-02 17:16:49 25 4
gpt4 key购买 nike

prestashop 中是否有一些用于跟踪 Hook 调用的解决方案?特别是 Action 钩子(Hook),我需要检查钩子(Hook)在哪里被调用以及钩子(Hook)在做什么。很难找到钩子(Hook)的功能。它们可以无处不在。

最佳答案

所有钩子(Hook)的执行都是由 Hook 类的函数 exec 完成的。您可以在此函数的开头添加调试跟踪:

public static function exec($hook_name, $hook_args = array(), $id_module = null, $array_return = false, $check_exceptions = true,
$use_push = false, $id_shop = null)
{
$logger = new FileLogger(0);
$logger->setFilename(_PS_ROOT_DIR_.'/log/debug.log');
$e = new Exception;
$logger->logDebug('Hook '.$hook_name.' called from:');
$logger->logDebug($e->getTraceAsString());
....

这将在/log/debug.log 中创建一个调试日志,并将显示有关谁调用此 Hook 的信息。

如果你覆盖这个函数就更好了;)


您还可以调试数据库中的所有 INSERT。

添加这段代码

protected function q($sql, $use_cache = true)
{
$logger = new FileLogger(0);
$logger->setFilename(_PS_ROOT_DIR_.'/log/sql.log');
$e = new Exception;
$logger->logDebug('SQL '.$sql.' executed from:');
$logger->logDebug($e->getTraceAsString());
...

Db 类 (/classes/db/Db.php) 的 q 函数中。

关于debugging - Prestashop 调试 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45974866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com