-
Notifications
You must be signed in to change notification settings - Fork 2
/
otshelnik-fm-kint.php
118 lines (90 loc) · 3.7 KB
/
otshelnik-fm-kint.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
/*
MU Plugin Name: Otshelnik-Fm Kint
Plugin URI: https://codeseller.ru/products/otshelnik-fm-kint/
Description: PHP дебаг с помощью Kint и еще несколько возможностей
Version: 2.0.0
Author: Otshelnik-Fm
Author URI: https://otshelnik-fm.ru/
License: MIT
*/
/*
╔═╗╔╦╗╔═╗╔╦╗
║ ║ ║ ╠╣ ║║║ https://otshelnik-fm.ru
╚═╝ ╩ ╚ ╩ ╩
*/
/*
Original idea:
Author: Rokas Šleinius (raveren) https://github.com/kint-php/kint
Integrations:
Author WordPress mu-plugin: Otshelnik-Fm https://otshelnik-fm.ru/
*/
// подключаем библиотеку v3.0 https://github.com/kint-php/kint/releases
// require __DIR__.'/ot-fm-kint-resource/kint.phar';
// Темы: original.css (default), solarized.css, solarized-dark.css, aante-light.css
//Kint\Renderer\RichRenderer::$theme = 'original.css';
/*
Ниже мои 5 функций: Свой велосипед - и ездить приятно :)
когда нужен простой вывод на печать
когда я хочу загнать результат отладки в логи сервера
когда я залогинен и админ - чтобы другие авторы и гости мои дебаги не видели
когда ajax продебажить надо
*/
// vd (мой var_dump) - удобный дебаг вместо print_r или var_dump
if ( ! function_exists( 'vd' ) ) {
function vd( $var, $fixed = false ) {
$pre_style = '';
$det_style = '';
if ( $fixed ) {
$det_style = 'style="position:fixed;top:45px;left:20px;z-index:2000;background-color:#e6decf;padding:10px 8px;line-height:normal;"';
$pre_style = 'style="height:calc(85vh - 50px);line-height: normal;margin: 10px 0 0;"';
}
echo '<details open ' . $det_style . '><pre ' . $pre_style . '>';
if ( ! empty( $var ) ) {
print_r( $var );
} else {
var_dump( $var );
}
echo '</pre></details>';
}
}
// vda (var_dump admin) - вывод на экран для админа
if ( ! function_exists( 'vda' ) ) {
function vda( $var, $fixed = false ) {
if ( current_user_can( 'manage_options' ) ) {
vd( $var, $fixed );
}
}
}
// vdd - аналог vd, но с die; на конце. Когда нужно остановить дальнейшую работу
if ( ! function_exists( 'vdd' ) ) {
function vdd( $var ) {
vd( $var );
die;
}
}
// vdl (var_dump log) - пишем в логи сервера. Когда выводить на экран нам нельзя (или это дебаг ajax запроса например).
if ( ! function_exists( 'vdl' ) ) {
function vdl( $var ) {
error_log( print_r( $var, true ) );
}
}
// vdx (var_dump XHR) - для дебага ajax (смотри приходящие данные POST в вкладке XHR браузера) Наглядно: https://yadi.sk/i/CPGuKgwmSQTEKg
if ( ! function_exists( 'vdx' ) ) {
function vdx( $var ) {
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
if ( is_array( $var ) ) {
$var['data_type'] = gettype( $var );
}
if ( is_object( $var ) ) {
$var->data_type = gettype( $var );
} else if ( is_string( $var ) || is_int( $var ) || is_float( $var ) || is_bool( $var ) ) {
$var .= ' | data_type: ' . gettype( $var );
} else if ( NULL === $var ) {
$var = 'NULL';
$var .= ' | data_type: NULL';
}
wp_send_json_error( $var );
}
}
}