Prestashop调试挂钩



PrestAshop中的某些解决方案是跟踪挂钩调用的吗?尤其是动作钩子,我需要检查挂钩在哪里以及钩子的工作。很难找到钩子的功能。他们可以到处。

所有挂钩执行均由Hook类的funcion 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上创建一个调试日志,并将显示有关谁称呼此挂钩的信息。

如果您覆盖此功能这样做,更好的是;)


您也可以在DB中调试所有插入物。

添加此代码

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());
    ...

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

最新更新