Тема отладки крючки
Есть ли какое-то решение в prestashop для отслеживания вызовов крючков? Особенно действия крючки мне нужно проверить, где крючки вызов и что крючки делают. Трудно найти функции для крючков. Они могут быть везде.
У вопроса есть решение - Посмотреть?

Вы хотите знать, какие крючки называются?
Источник

В моем магазине иногда БД содержит двойные строки. Вставка находится в функции крючка. Поэтому иногда им приходится бежать дважды. Я не могу найти когда и где. И во втором случае я нахожу HOOK:: EXEC, но я не могу найти, где находится функция для него. Они должны быть в каком-то модуле.
Источник
Ответы - Тема отладки крючки / Prestashop debugging hooks
Является ответом!

31.08.2017 01:37:32
Всеми правдами казней осуществляется функция exec
от Hook
класса. Вы можете добавить трассировку отладки в начале этой функции:
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.войдите и отобразите информацию о том, кто вызывает этот крючок.
Еще лучше, если вы переопределите эту функцию, чтобы сделать это ;)
Вы также можете отлаживать все вставки в вашей БД.
Добавьте этот код
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 (Db
).

@Marcin Jaworski ответ отредактирован, чтобы помочь вам найти, кто делает вставку
Помочь в развитии проекта: