darkfriend / devhelpers
Helper classes for developer
Installs: 1 072
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: >=7.0
README
Структура:
-
DebugHelper
DebugHelper::$mainKey
- свойство, содержащее имя ключа для $_COOKIE и $_GETDebugHelper::print_pre($o, $die, $show)
- статичный метод, который выводит всю структуру массива и объекта, с информацией о файле и строке (подробности ниже)DebugHelper::call($func, ...$params)
- статичный метод, который вызывает переданную функцию только у админа, передавая нужные параметры (подробности ниже)DebugHelper::trace($message, $category='common')
- статичный метод трессировки (ниже примеры использования)
-
StringHelper
StringHelper::htmlspecialchars($val)
- статичный метод, который делает htmlspecialchars() для строк и массивовStringHelper::htmlspecialchars_decode($val)
- статичный метод, который делает htmlspecialchars_decode() для строк и массивовStringHelper::generateString($length, $chars)
- статичный метод, который возвращает сгенерированную строку нужной длиныStringHelper::getDeclension($value, $words)
- статичный метод, который возвращает окончания слов при слонении. Например: 5 товаров, 1 товар, 3 товараStringHelper::truncate($string, $length, $suffix = '...', $encoding = null)
- возвращает обрезанный текст в $length символовStringHelper::truncateWords($string, $count, $suffix = '...')
- возвращает обрезанный текст в $length слов
-
ArrayHelper
ArrayHelper::in_array($needle, $haystack)
- highload method for search value in arrayArrayHelper::isMulti($arr)
- check array on multiple arrayArrayHelper::sortValuesToArray($sourceArray,$orderArray)
- Sort values array to order arrayArrayHelper::sortKeysToArray($sourceArray,$orderArray)
- Sort keys source array to order array
-
CurlHelper
CurlHelper::getInstance($newSession = false, $options = [])
- return instance CurlHelperCurlHelper::getInstance($newSession = false, $options = [])->request($url, $data = [], $method = 'post', $requestType = '', $responseType = 'json')
- do request to url
-
TypeHelper
TypeHelper::toStrictType($value)
- return $value to strict type
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\devhelpers\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\devhelpers\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\devhelpers\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 - это любой ключ.
CurlHelper
$url = 'http://site.ru'; $curl = CurlHelper::getInstance(); $response = $curl->request($url); // $response - array response site.ru // $curl->lastCode - response http code // $curl->lastHeaders - response http headers
CurlHelper with custom headers
$url = 'http://site.ru'; $curl = CurlHelper::getInstance(); $response = $curl ->addHeaders([ 'Accept-Language' => 'ru-RU', 'Custom-Head' => 'custom', ]) ->request($url); // $response - array response site.ru // $curl->lastCode - response http code // $curl->lastHeaders - response http headers
CurlHelper with debug
$url = 'http://site.ru'; $curl = CurlHelper::getInstance(false,[ 'debug' => true, 'debugFile' => __DIR__.'/logs' ]); $response = $curl->request($url); // $response - array response site.ru // $curl->lastCode - response http code // $curl->lastHeaders - response http headers