Перейти к содержанию

Рекомендуемые сообщения

Может кому то будет нужно, подружил ocStore 2.1.0.2.1 и debugger_0.0.2

 

В файле config.php в конце добавил:

define('DEBUG', true);

 

 

В файле index.php прописал:

// Registry
$registry = new Registry();
 
// Debugger
$debugger = new Debug();
$registry->set('debugger', $debugger);
 
// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);
 
....
 
 
//эта строчка в самом конце в index.php
// вывод итогового лога отлатчика
echo !DEBUG ? null : $debugger->show($sysstart);

 
В файле system/library/db.php вставил вот такой код:

public function query($sql) {
   $sysstart = microtime(true);
        
        $res = $this->db->query($sql);
        
        $row = array();
        
    if(DEBUG){
    $caller = debug_backtrace();
            if (!empty($caller[1])) {
        $row['file'] = $caller[1]['file'];
        $row['line'] = $caller[1]['line'];
            } else {
                $row['file'] = $caller[0]['file'];
        $row['line'] = $caller[0]['line'];    
            }
   
    $row['Duration'] = round(( microtime(true) - $sysstart), 5);
    $row['Query'] = $sql;
            
    Debug::$_profs[] = $row;
    }
        
return $res;
}

 

После этого у меня стали отображатся SQL запросы.

Изменено пользователем dimmma73
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Очень странно, на локалке заработало, а вот на хостинге нет. Также внес небольшие изменения в код, пример ниже:

 

В файле config.php в конце добавил:

define('DEBUG', true);
define('MEM_USAGE', true);


$sysstart = microtime(true);

 

В файле index.php прописал:


//в самом конце файла
echo !DEBUG ? null : Debug::show($sysstart);

 

В файле system/library/db.php вместо функции:

public function query($sql) {
return = $this->db->query($sql);
}

Заменить вот на эту функцию

public function query($sql) {
$sysstart = microtime(true);

$res = $this->db->query($sql);

$row = array();

if(DEBUG){
$caller = debug_backtrace();
if (!empty($caller[1])) {
$row['file'] = $caller[1]['file'];
$row['line'] = $caller[1]['line'];
} else {
$row['file'] = $caller[0]['file'];
$row['line'] = $caller[0]['line'];
}

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

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

return $res;
}

Изменено пользователем dimmma73
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поставил дебаггер.

ошибок не выдает, но и не выводит панели дебаггера (ни в админке, ни на витрине)

ocstore 1.5.5.1.1, шаблон Journal2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по поводу отладчика у меня ocstore 2.1 все работает но есть пару ошибок 

2016-11-08 15:34:47 - PHP Notice:  Undefined index: file in /var/www/posud55/data/www/posda-n.com.ua/system/library/db.php on line 25
2016-11-08 15:34:47 - PHP Notice:  Undefined index: line in /var/www/posud55/data/www/posa.com.ua/system/library/db.php on line 26
2016-11-08 15:34:47 - PHP Notice:  Undefined index: file in /var/www/posud55/data/www/posa-uicom.ua/system/library/db.php on line 25
 
if (!empty($caller[1])) {
$row['file'] = $caller[1]['file'];
$row['line'] = $caller[1]['line'];
} else {
$row['file'] = $caller[0]['file'];
$row['line'] = $caller[0]['line'];
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А у меня все заработало с правками от dimmma73, за что ему большой респект!!!

Пробовал пока только на дефолтной теме Version 2.1.0.2 (rs.1) , завтра буду на свою адаптировать, если че.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 27.04.2017 в 16:46, Seofisher сказал:

А как подружить с Opencart 2.3 ?

Все как в ридми, плюс то что на картинке

Clip2net_170512173455.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Readme для Opencart 2.3  + кое-какая правка в debug.php + обновленный geshi

Скрытый текст

 

Установка:

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

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

    


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

2. Файл \index.php   и admin\index.php   

   2.1  \index.php


// рассчет времени работы
$sysstart = microtime(true);/*Добавил debuger*/
// рассчет памяти
function_exists('memory_get_usage') ? define('MEM_USAGE', memory_get_usage()) : null;/*Добавил debuger*/
// Version
define('VERSION', '2.3.0.2.3');
// Configuration
if (is_file('config.php')) {
    require_once('config.php');
}
// Install
require_once(DIR_SYSTEM . 'library/debug.php');/*Добавил debuger*/
if (!defined('DIR_APPLICATION')) {
    header('Location: install/index.php');
    exit;
}
// Startup
require_once(DIR_SYSTEM . 'startup.php');
start('catalog');
echo !DEBUG ? null : Debug::show($sysstart);/*Добавил debuger*/

    2.2 admin\index.php 


// рассчет времени работы
$sysstart = microtime(true);/*Добавил debuger*/
// рассчет памяти
function_exists('memory_get_usage') ? define('MEM_USAGE', memory_get_usage()) : null;/*Добавил debuger*/
// Version
define('VERSION', '2.3.0.2.3');
// Configuration
if (is_file('config.php')) {
require_once('config.php');
}
// Install
require_once(DIR_SYSTEM . 'library/debug.php');/*Добавил debuger*/
if (!defined('DIR_APPLICATION')) {
header('Location: ../install/index.php');
exit;
}
// Startup
require_once(DIR_SYSTEM . 'startup.php');
start('admin');
echo !DEBUG ? null : Debug::show($sysstart);/*Добавил debuger*/

3. файл \system\library\db\mysql.php и mysqli.php добавляем:

     3.1. В начало файла после namespace DB;        


use DEBUG;

     3.2 в mysql.php
        // Строку $resource = mysql_query($sql, $this->connection); заменить на:       


	$sysstart = microtime(true); /*Добавил debuger*/
        $resource = mysql_query($sql, $this->connection);
        $row = array();    /*Добавил debuger*/    
        if(DEBUG){/*Добавил debuger*/
            $caller = debug_backtrace();/*Добавил debuger*/
            $row['file'] = $caller[1]['file'];/*Добавил debuger*/
            $row['line'] = $caller[1]['line'];/*Добавил debuger*/            
            $row['Duration'] = round(( microtime(true) - $sysstart), 5);/*Добавил debuger*/
            $row['Query'] = $sql;/*Добавил debuger*/            
            Debug::$_profs[] =  $row;/*Добавил debuger*/
        }

      
       3.3 в mysqli.php
        //Строку $query = $this->connection->query($sql); заменить на:


	$sysstart = microtime(true); /*Добавил debuger*/
        $query = $this->connection->query($sql);
        $row = array(); /*Добавил debuger*/    
        if(DEBUG){/*Добавил debuger*/
            $caller = debug_backtrace();/*Добавил debuger*/
            $row['file'] = $caller[1]['file'];/*Добавил debuger*/
            $row['line'] = $caller[1]['line'];/*Добавил debuger*/            
            $row['Duration'] = round(( microtime(true) - $sysstart), 5);/*Добавил debuger*/
            $row['Query'] = $sql;/*Добавил debuger*/            
            Debug::$_profs[] =  $row;/*Добавил debuger*/
        }

 

4. Для вывода информации request в  файле \system\library\request.php меняем строки:

        $this->get = $this->clean($_GET);
        $this->post = $this->clean($_POST);
        $this->request = $this->clean($_REQUEST);
        $this->cookie = $this->clean($_COOKIE);
        $this->files = $this->clean($_FILES);
        $this->server = $this->clean($_SERVER);
        
        на:


	$this->get = $this->clean($_GET);
        $key ='GET';
        Debug::$_request[$key] =  $_GET;
        $this->post = $this->clean($_POST);
        $key ='POST';
        Debug::$_request[$key] =  $_POST;
        $this->request = $this->clean($_REQUEST);
        $key ='REQUEST';
        Debug::$_request[$key] =  $_REQUEST;
        $this->cookie = $this->clean($_COOKIE);
        $key ='COOKIE';
        Debug::$_request[$key] =  $_COOKIE;
        $this->files = $this->clean($_FILES);
        $key ='FILES';
        Debug::$_request[$key] =  $_FILES;
        $this->server = $this->clean($_SERVER);
        $key ='SERVER';
        Debug::$_request[$key] =  $_SERVER;


        
        Или просто добавить:


	$key ='GET';
        Debug::$_request[$key] =  $_GET;
        $key ='POST';
        Debug::$_request[$key] =  $_POST;
        $key ='REQUEST';
        Debug::$_request[$key] =  $_REQUEST;
        $key ='COOKIE';
        Debug::$_request[$key] =  $_COOKIE;
        $key ='FILES';
        Debug::$_request[$key] =  $_FILES;
        $key ='SERVER';
        Debug::$_request[$key] =  $_SERVER;

        
5. Файл \system\library\session.php добавляем строки в функцию отображает сессию в реквест
public function start($key = 'default', $value = '') перед return $this->session_id;


	$key ='SESSION';
        Debug::$_request[$key] =  $this->data;

 

 

 

 

debugger_0.0.2.7z

Изменено пользователем zetrox
Добавил измененный debugger

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Notice: Array to string conversion in .../system/library/debug.php on line 170
после футера

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 27.06.2017 в 17:39, doronus сказал:

Notice: Array to string conversion in .../system/library/debug.php on line 170
после футера

Данную ошибку выкидывает в опере! 

+ поправь в system\library\debug.php 174 строку замени на:

 $f .= '<tr valign="top"><td>-</td><td>-</td><td>Empty</td></tr>';


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Opencart 2.3 
Fatal error: Cannot redeclare class Debug in /system/library/debug.php on line 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 6/27/2017 at 4:39 PM, doronus said:

Notice: Array to string conversion in .../system/library/debug.php on line 170
после футера

 

On 7/8/2017 at 9:45 AM, zetrox said:

Данную ошибку выкидывает в опере! 

+ поправь в system\library\debug.php 174 строку замени на:


 $f .= '<tr valign="top"><td>-</td><td>-</td><td>Empty</td></tr>';


 

 

Строку /system/library/debug.php on line 170

$f .= '<tr valign="top"><td>' . $c . ' </td><td> ' . $k . ' </td><td> ' . $r . '</td></tr>';

заменить на:

 

$f .= '<tr valign="top"><td>' . $c . ' </td><td> ' . $k . ' </td><td> ' . (is_array($r) ? json_encode($r) : $r) . '</td></tr>';

 

Все вместе:

 

        // File: .../system/library/debug.php
		/* Request */
        $request = self::$_request;
        $f .= '<div id="ptb_data_cont_request" class="ptb_data_cont" style="display: none;">
                  <ul class="ptb_tabs">
                    <li id="ptb_tab_request_default">Request <span>(' . count($request) . ')</span></li>
                  </ul>
                  <div id="ptb_tab_cont_request_default" class="ptb_tab_cont">';

        foreach ($request as $key => $row) {
            $f .= '<table class="ptb_tab_cont_table">
                      <tbody>
                        <tr>
                          <th style="width:20px;"></th>
                          <th style="width:210px;"></th>
                          <th>' . $key . '</th>
                        </tr>';
            $c = 1;
            if ($row) {
                foreach ($row as $k => $r) {
                    $f .= '<tr valign="top"><td>' . $c . ' </td><td> ' . $k . ' </td><td> ' . (is_array($r) ? json_encode($r) : $r) . '</td></tr>';
                    $c++;
                }
            } else {
                $f .= '<tr valign="top"><td>-</td><td>-</td><td>Empty</td></tr>';
            }
            unset($c);

            $f .= '</tbody>
                    </table>';
        }

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Установил для ocstore 2.3. Все прекрасно за исключением того, что сайт сообщает о том что страница не найдена. А как вообще регулировать включение/выключение панели отладчика?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 2/22/2018 at 8:38 AM, Fisco said:

Установил для ocstore 2.3. Все прекрасно за исключением того, что сайт сообщает о том что страница не найдена. А как вообще регулировать включение/выключение панели отладчика?

 

файлы config.php

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребят, у кого-то получилось запустить дебаггер на хостинге? На локалке все хорошо, а вот на хостинге ни ошибок, ни дебаггера.. ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От 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 не устанавливается (?). Каким образом правильно организовать отладку в таких случаях?
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×