Jump to content

Recommended Posts

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

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

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

PS: Версия 1.5.1.3

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

Добрая ночь.

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

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

 

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

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

 

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

 

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

Share this post


Link to post
Share on other sites

Спасибо за удобный инструмент!

Share this post


Link to post
Share on other sites

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

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

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

  • +1 1

Share this post


Link to post
Share on other sites

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

... 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. Да, и огромное спасибо автору! ;)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

Продолжая тему ос2.0 - я не силен в драйверах бд, кто подскажет как прикрутить к mysqli?

Share this post


Link to post
Share on other sites

Добрый вечер.

Что значит прикрутить?

Они идут  с движком.

 

Другое дело , Ваш сервер может не поддерживать.

Share this post


Link to post
Share on other sites

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

Edited by destreser

Share this post


Link to post
Share on other sites

Жаль конечно, что полноценно нельзя портировать под 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

Share this post


Link to post
Share on other sites

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

По тестам:

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

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

 

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

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

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

Share this post


Link to post
Share on other sites

По тестам:

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

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

 

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

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

Нет. угадать не получится. Пишите на какие характеристики нужно обращать внимание

Share this post


Link to post
Share on other sites

Странно после установки все работает кроме админки, 500-тую ошибку возвращает.  :ph34r:

OcStore 1.5.5.1.2

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

спасибо, chukcha.

добавил себе сразу в инстал

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

 

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

 

т.е.

после echo  $output

 

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

 

 

 

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

 

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

 

if ($this->output) {

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

 

 

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

Share this post


Link to post
Share on other sites

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

 

Подскажите пожалуйста, ставлю на ОС 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

 

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

 

Спасибо.

Share this post


Link to post
Share on other sites

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 ??

Share this post


Link to post
Share on other sites

...отбой, просто обновил geshi )

Share this post


Link to post
Share on other sites

очень полезная штука! а как бы ее под 2.1 адаптировать?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By barl0g
      Просьба к более опытным программистам описать каким образом правильно организовать отладку ошибок, возникающих при конфликте модулей в opencart?
       
      Например, программист натыкается на ошибку типа:
      Parse error: syntax error, unexpected 'else' (T_ELSE) in /home/user/www/opencart/system/storage/modification/catalog/view/theme/default/template/product/product.tpl on line 198 В phpstorm breakpoint в файлах *.tpl не устанавливается (?). Каким образом правильно организовать отладку в таких случаях?
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.