Тема отладки крючки

Тема отладки крючки

31.08.2017 09:41:43 Просмотров 59 Источник

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

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/45974866/prestashop-debugging-hooks#comment78916216_45974866
Вы хотите знать, какие крючки называются?
https://stackoverflow.com/questions/45974866/prestashop-debugging-hooks#comment78937197_45974866
В моем магазине иногда БД содержит двойные строки. Вставка находится в функции крючка. Поэтому иногда им приходится бежать дважды. Я не могу найти когда и где. И во втором случае я нахожу HOOK:: EXEC, но я не могу найти, где находится функция для него. Они должны быть в каком-то модуле.

Ответы - Тема отладки крючки / Prestashop debugging hooks

Является ответом!
idnovate

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

https://stackoverflow.com/questions/45974866/prestashop-debugging-hooks/45979408#comment78950153_45979408
@Marcin Jaworski ответ отредактирован, чтобы помочь вам найти, кто делает вставку
Закрыть X