darkfriend / php7-debug
There is no license information available for the latest version (1.0.6) of this package.
PHP7 debug helper
1.0.6
2021-03-30 18:25 UTC
Requires
- php: >=7.0
README
composer require darkfriend/php7-debug
Классы помощники для PHP7
- для трассировки и логирования данных
- для дебага разных частей кода
Trace
Трассировка данных в файл
Trace::init($sessionHash = null, $mode = null, $pathLog = '/')
- инициализация, указывается только для изменения первоначальных или ранее определенных настроекTrace::add($message, $category = 'common')
- добавление сообщения в файл
Trace Example
// basic usage \darkfriend\helpers\Trace::add('my message'); // добавляет строку // \darkfriend\helpers\Trace::add(['my message']); // добавляем любой массив или объект
// example: set trace file \darkfriend\helpers\Trace::init( null, null, './logs/trace.log' ); \darkfriend\helpers\Trace::add('my message'); // добавляет строку в файл trace.log // \darkfriend\helpers\Trace::add(['my message']); // добавляем любой массив или объект в файл trace.log \darkfriend\helpers\Trace::init( null, null, './logs/custom.log' ); \darkfriend\helpers\Trace::add('my message'); // добавляет строку в файл custom.log // \darkfriend\helpers\Trace::add(['my message']); // добавляем любой массив или объект в файл custom.log
Log
Логированные данных в файл
Trace::init($sessionHash = null, $mode = null, $pathLog = '/')
- инициализация, указывается только для изменения первоначальных или ранее определенных настроекTrace::add($message, $category = 'common')
- добавление сообщения в файл
Trace Example
// basic usage \darkfriend\helpers\Log::add('my message'); // добавляет строку // \darkfriend\helpers\Trace::add(['my message']); // добавляем любой массив или объект
// example: set trace file \darkfriend\helpers\Log::init( null, null, './logs/basic.log' ); \darkfriend\helpers\Log::add('my message'); // добавляет строку в файл basic.log // \darkfriend\helpers\Trace::add(['my message']); // добавляем любой массив или объект в файл basic.log \darkfriend\helpers\Log::init( null, null, './logs/custom.log' ); \darkfriend\helpers\Log::add('my message'); // добавляет строку в файл custom.log // \darkfriend\helpers\Trace::add(['my message']); // добавляем любой массив или объект в файл custom.log
Debug (alias DebugHelper) - удобный дебаггинг и трассировка данных
DebugHelper::$mainKey
- свойство, содержащее имя ключа для $_COOKIE и $_GETDebugHelper::print_pre($o,$die,$show)
- статичный метод, который выводит всю структуру массива и объекта, с информацией о файле и строке (подробности ниже)DebugHelper::call($func,$params)
- статичный метод, который вызывает переданную функцию только у админа, передавая нужные параметры (подробности ниже)DebugHelper::trace($message,$category='common')
- статичный метод трессировки (ниже примеры использования)
DebugHelper::print_pre($o,$die,$show);
- $o - данные, которые надо вывести
- $die - прерывать ли после вывода выполнение скрипта (по умолчанию false)
- $show - выводить всем [или только в определенных случаях] (по умолчанию true)
Пример
use \darkfriend\devhelpers\DebugHelper; $data = [ 'key1' => 'value1', 'key2' => 'value2', 'key3' => [ 'subKey1' => 'subValue1', 'subKey2' => 'subValue2', ], ]; DebugHelper::print_pre($data);
DebugHelper::call($func,$params)
- $func - функция, которую надо вывести
- $params - массив параметров которые надо передать
Пример
use \darkfriend\helpers\DebugHelper; $data = [ 'key1' => 'value1', 'key2' => 'value2', 'key3' => [ 'subKey1' => 'subValue1', 'subKey2' => 'subValue2', ], ]; // способ 1: используя $params DebugHelper::call(function($data) { DebugHelper::print_pre($data); },$data); // способ 2: используя use DebugHelper::call(function() use ($data) { DebugHelper::print_pre($data); });
DebugHelper::trace($message,$category)
- $message - сообщение
- $category - категория трассировки
Дополнительные возможности
- поддержка режимов трассировния
- TRACE_MODE_REPLACE - режим перезаписи лога
- TRACE_MODE_APPEND - режим дополнение лога
- TRACE_MODE_SESSION - режим trace-сессии
- поддержка trace-сессий - каждый запуск в отдельном
Example 1: простая трассировка
Задача: Простая запись данных в лог
use \darkfriend\helpers\DebugHelper; $array1 = [ 'key1' => 'value1', 'key2' => 'value2' ]; // trace 1 DebugHelper::trace($array1); // итог: запишет $array1 с категорией common. $array1['key3'] = [ 'subKey1' => 'subValue1', 'subKey2' => 'subValue2', ]; // trace 2 DebugHelper::trace($array1); // итог: допишет в лог обновленный $array1 с категорией common
Example 1: FAQ
- Где лежит файл? - путь
$_SERVER['DOCUMENT_ROOT].'/trace.log'
- Что будет в логе? - будет 2 записи переменной $array1. По умолчанию идет запись лога сверху вниз
- Какая категория будет? - по умолчанию категория "common"
Example 2: каждый запуск в отдельный файл
Задача: Мы сохраняем данные и хотим трассировать id-строки и сохраняемые данные
use \darkfriend\helpers\DebugHelper; $id = 1; // идентификатор // делаем инициализацию // $id - ключ trace-session // self::TRACE_MODE_SESSION - включаем режим trace-session DebugHelper::traceInit($id, DebugHelper::TRACE_MODE_SESSION); $array1 = [ 'key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3' ]; DebugHelper::trace($array1); // итог: запишет $array1 с категорией common. $array1['key3'] = [ 'subKey1' => 'subValue1', 'subKey2' => 'subValue2', ]; // trace 2 DebugHelper::trace($array1); // итог: допишет в лог обновленный $array1 с категорией common
Example 2: FAQ
- Где лежит файл? - путь
$_SERVER['DOCUMENT_ROOT]."/{$id}-trace.log"
- Что будет в логе? - будет 2 записи переменной $array1. По умолчанию идет запись лога сверху вниз
- Какая категория будет? - по умолчанию категория "common"
- Как изменить путь до лога? - по умолчанию лог создается в корне, чтоб его изменить, нужно передать путь от корня в 3-ий параметр метода DebugHelper::traceInit(). Пример:
DebugHelper::traceInit($id, self::TRACE_MODE_SESSION,'/logs')
- Могу ли я для одного trace сделать один файл, для другого - другой? - да, нужно в нужный момент вызвать метод
DebugHelper::setHashSession($hash)
, где $hash - это любой ключ.