darkfriend/devhelpers

此包最新版本(1.4.3)没有可用的许可证信息。

开发者辅助类

1.4.3 2019-11-07 06:38 UTC

This package is auto-updated.

Last update: 2024-09-21 20:20:49 UTC


README

结构

  • DebugHelper

    • DebugHelper::$mainKey - 包含 $_COOKIE 和 $_GET 的键名的属性
    • DebugHelper::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) - 在数组中搜索值的快速方法
    • ArrayHelper::isMulti($arr) - 检查数组是否为数组
    • ArrayHelper::sortValuesToArray($sourceArray,$orderArray) - 将值数组排序到顺序数组
    • ArrayHelper::sortKeysToArray($sourceArray,$orderArray) - 将源数组的键排序到顺序数组
  • CurlHelper

    • CurlHelper::getInstance($newSession = false, $options = []) - 返回 CurlHelper 实例
    • CurlHelper::getInstance($newSession = false, $options = [])->request($url, $data = [], $method = 'post', $requestType = '', $responseType = 'json') - 向 URL 发送请求
  • TypeHelper

    • TypeHelper::toStrictType($value) - 将 $value 返回为严格类型

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 - 跟踪会话模式
  • 支持跟踪会话 - 每个运行都在单独的文件中

示例 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

示例 1:常见问题解答

  • 文件在哪里? - 路径 $_SERVER['DOCUMENT_ROOT'].'/trace.log'
  • 日志中会有什么? - 将记录 2 个变量 $array1。默认情况下,日志记录是从上到下进行的
  • 将使用什么类别? - 默认类别为 "common"

示例 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

示例 2:常见问题解答

  • 文件在哪里? - 路径 $_SERVER['DOCUMENT_ROOT']."/{$id}-trace.log"
  • 日志中会有什么? - 将记录 2 个变量 $array1。默认情况下,日志记录是从上到下进行的
  • 将使用什么类别? - 默认类别为 "common"
  • 如何更改日志路径? - 默认情况下,日志创建在根目录下,要更改它,需要将根目录的路径传递给 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

$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

$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