Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Отладчик для OpenCart - Debugger


Recommended Posts

Что входит в понятие время выполнения скрипта?

Речь идет о PHP скрипте? Другими словами это время загрузки страницы сайта?

Учитывает ли отладчик время выполнения javascript кода и ajax запросов, которые выполняются после загрузки страницы?

 

Это можно и в браузере посмотреть. В хроме нажать F12, переключиться на вкладку network и обновить страницу

 

Отладчик учитывает только время выполнения php и каждого из mysql запросов в отдельности

Надіслати
Поділитися на інших сайтах

А можно ли все изменения которые нужно сделат заключить в vqmod ? Будет работать ?

Подскажите а как еще во вкладку logs вывести свое сообщение ? Делаю Debug::log(varname);  - ничего не происходит

 

PS: Версия 1.5.1.3

Надіслати
Поділитися на інших сайтах

  • 1 month later...

в php 5.5 preg_replace заменили на preg_replace_callback 

при замене в geshi.php выбивает ошибки, видимо структура запроса тоже изменилась

Поведение этой функции во многом напоминает preg_replace(), за исключением того, что вместо параметра replacement необходимо указывать callback-функцию.

А вообще не нашел информации о том что preg_replace убрали. Вы её с ereg_replace не путаете?

Надіслати
Поділитися на інших сайтах

  • 2 months later...

Добрая ночь.

Кстати, для тех, кому нужен дебагер в админ панели, а он  не запустился с первого раза, посмотрите в консоль,  файл стилей и яваскипт, оказалось грузит с ошибочных  путей.  

http://clip2net.com/s/71lYKp

 

Исправить можно  в фaйле /library/debug.php

Конечно, я не совсем красиво исправил, но на быструю руку сойдет:

 

http://clip2net.com/s/71m7JB

 

Я конечно согласен,  можно и условия прописать, но меня так устроило.

Надіслати
Поділитися на інших сайтах

  • 5 weeks later...
  • 5 months later...

в php 5.5 preg_replace заменили на preg_replace_callback 

при замене в geshi.php выбивает ошибки, видимо структура запроса тоже изменилась

Лечится заменой GeShi (system/helper/geshi) на последнюю версию 

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 1 month later...

отладчик в админке

... 2. Добавляем в файл \index.php и(или) \admin\index.php ...

тоесть

Установка:

1. Копируем файлы из папок admin и system в директорую установленного магазина

2. Добавляем в файл \config.php и(или) \admin\config.php в конец:

//debug
define('DEBUG', true);

2. Добавляем в файл \index.php и(или) \admin\index.php
2.1 в начало файла добавляем:

// рассчет времени работы
$sysstart = microtime(true);
// рассчет памяти
function_exists('memory_get_usage') ? define('MEM_USAGE', memory_get_usage()) : null;

2.2 после комментария //Application Classes:

require_once(DIR_SYSTEM . 'library/debug.php');

2.3 в конец:

// вывод итогового лога отлатчика
echo !DEBUG ? null : Debug::show($sysstart);

3. файл \system\database\mysql.php строчку $resource = mysql_query($sql, $this->link); заменяем на:

$sysstart = microtime(true);
$resource = mysql_query($sql, $this->link);
$row = array();

if(DEBUG){
$caller = debug_backtrace();
$row['file'] = $caller[1]['file'];
$row['line'] = $caller[1]['line'];

$row['Duration'] = round(( microtime(true) - $sysstart), 5);
$row['Query'] = $sql;

Debug::$_profs[] = $row;
}

 

и ещё, может кому пригодиться:

если не работает, то в файле в system\library\debug.php
строки
<script type="text/javascript" src="' . HTTP_SERVER . 'admin/view/javascript/profilertoolbar.js"></script>
<link rel="stylesheet" href="' . HTTP_SERVER . 'admin/view/stylesheet/profilertoolbar.css">
заменить на
<script type="text/javascript" src="' . HTTP_SERVER . 'view/javascript/profilertoolbar.js"></script>
<link rel="stylesheet" href="' . HTTP_SERVER . 'view/stylesheet/profilertoolbar.css">
(проконтролировать можно, например, FireBug)

P.S. Да, и огромное спасибо автору! ;)

Надіслати
Поділитися на інших сайтах

  • 3 months later...
  • 2 weeks later...

А как на счет Opencart 2? Есть ли совместимые дебаггеры?

Первый дебагер установил, но не работает в админке, еще разбираюсь

 

Русская сборка Опенкарт 2.0.1.1

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Мы в теме о дебаггере для версии 1.5, которая использует mysql, а OC2.0 - mysqli. Дальше нужно объяснять?

Змінено користувачем destreser
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Жаль конечно, что полноценно нельзя портировать под vqmod, ибо точку входа (index.php) не модифицировать.
Но интеграцию с базой можно перенести на xml

Так же небольшая модификация последней строки для index.php

 

// вывод итогового лога отлатчика
echo !defined('DEBUG') || !DEBUG ? null : Debug::show($sysstart);

 

Мод под vqmod. Исправления в index.php вносить все же прийдется.

Данный мод позволяет дебажить sql запросы. Работает как на mysql, так и mysqli (как ранее спрашивали)

https://yadi.sk/d/bQKi7MQUfXkob

 

Куча исправлений

1. vqmod для интеграции с базами

2. заменены устаревшие функции preg_replace с модификатором /e в хелпере geshi

3. Исправлен баг скроллинга при большом количестве записей.

https://yadi.sk/d/NHZQZuKrfXqeW

  • +1 2
Надіслати
Поділитися на інших сайтах


  • 6 months later...

Сделал по мануалу перед моим сообщением. Скачал по нижней ссылке. Все работает на 15512.

По тестам:

Страница категории. На странице по 16 товаров.

1 мегабайт памяти на страницу и порядка 300-350 запросов к бд.

 

Карточка товара: тоже 1 мегабайт памяти и 200 запросов sql.

Это как много/мало/норма?

Есть куда оптимизировать?

Надіслати
Поділитися на інших сайтах


По тестам:

Страница категории. На странице по 16 товаров.

1 мегабайт памяти на страницу и порядка 300-350 запросов к бд.

 

Карточка товара: тоже 1 мегабайт памяти и 200 запросов sql.

Это как много/мало/норма?

Есть куда оптимизировать?

 

Это пальцем в небо и ни о чём.

Сами угадаете почему или подсказать?

Надіслати
Поділитися на інших сайтах

  • 4 weeks later...

Для того чтоб не все могли видеть режим отладки

 

system/library/debug.php

    public static function show($sysstart)
    {
		global $registry;
		require_once(DIR_SYSTEM . 'library/user.php');
		$user = new User($registry);
		if (!$user->isLogged()) {
			return;
		}

Тогда результаты будут доступны только админам

  • +1 1
Надіслати
Поділитися на інших сайтах

Кстати, и весь мод можно смело переписать в vqmod

 

не обязательно трогать index.php

 

внести изменения в startup, там объявить и константу и загрузить библиотеку.

 

 

и внести изменения в response

 

т.е.

после echo  $output

 

echo !DEBUG ? null : Debug::show($sysstart);

 

 

 

И еще момент - сжатие должно быть отключено

 

А если хочется с сжатием

 

if ($this->output) {

$this->output .= !DEBUG ? null : Debug::show($sysstart);

 

 

но то...  как-нибудь потом, когда руки дойдут..

Надіслати
Поділитися на інших сайтах

  • 1 month later...

Доброго времени суток.

 

Подскажите пожалуйста, ставлю на ОС 2.0, необходимо отследить запросы в админке, после включения, работает но нет данных по sql запросам, когда в файл /system/library/db/mysqli.php вношу изменения

 

$query = $this->link->query($sql);

заменить на

$sysstart = microtime(true);
$query = $this->link->query($sql);
$row = array();

if(defined('DEBUG') && DEBUG){
$caller = debug_backtrace();
$row['file'] = $caller[1]['file'];
$row['line'] = $caller[1]['line'];

$row['Duration'] = round(( microtime(true) - $sysstart), 5);
$row['Query'] = $sql;

Debug::$_profs[] = $row;
}

 

то вылазит ошибка

 

Fatal error: Class 'DB\Debug' not found in /hosting/***/system/library/db/mysqli.php on line 31

 

сразу скажу что читал ответы про то что эта тема не для первоклашек и т.п., но очень нужно отследить кое какие запросы.

 

Спасибо.

Надіслати
Поділитися на інших сайтах


  • 1 month later...

PHP Unknown:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in system/helper/geshi/geshi.php on line 2148

выражение:

$stuff_to_parse = preg_replace(
                                    "/([^a-zA-Z0-9\$_\|\#;>$hackage|^])($keyword)(?=[^a-zA-Z0-9_<\|%\-&])/ie",
                                    "'\\1' . $func2('\\2', '$k', 'BEGIN') . '<|$styles>' . $func('\\2') . '|>' . $func2('\\2', '$k', 'END')",
                                    $stuff_to_parse
                                ); 

Не силен в регулярках, как переделать под preg_replace_callback ??

Надіслати
Поділитися на інших сайтах

  • 2 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.