За годы я перестал использовать библиотеку Kint. И собственно использовал из этого плагина, лишь свои функции. Я выпустил новый MU-плагин OtFm WP-Debug с крутой тёмной темой и подшлифовал его. И он содержит один файл для копирования в MU-директорию.
Теперь я буду поддерживать OtFm WP-Debug. Используйте новый плагин OtFm WP Debug. Там работают все эти функции + ожидается развитие в виде интересного функционала. Следите там в Changelog.
Спасибо, что выбрали этот репозиторий. Но нужно двигаться дальше.
Это MU плагин для WordPress.
Позволяет вам дебажить ваши php проекты используя библиотеку Kint
Почему не обычный WordPress плагин?
Предыстория такова:
Мне надоело дебажить через var_dump($var);
и print_r($var);
. Хотелось какого-то универсального и более гибкого решения.
Смотрел в сторону Xdebug - но на данный момент мне он кажется избыточным. Так родилась функция vd($var);
- как аналог var_dump и print_r. Потом она немного расширилась - появился вывод с die;
, потом появилась для записи в логи сервера. Потом появилась только для вывода данных переменных и объектов видимых админу...
И свой велосипед всегда веселей. Так он поселился в файле functions.php, активного ВП-шаблона. Но иногда при тестировании я переключал шаблоны - получал конечно проблемы - функции то в других шаблонах нет (там другой functions.php).
Потом это переросло в небольшой ВП плагин - но и тут я иногда натыкался на грабли - плагин, бывает, отключается в процессе дебага и отладки...
Таким образом я решил оформить это дело в MU плагин - этот вид плагинов не отключается никогда.
Создал папку /wp-content/mu-plugins/
и в корень поместил файлы, а WordPress автоматически его активирует и никогда не дает его отключить.
Красота.
А недавно я вышел на библиотеку Kint - и она мне сильно пригодилась когда приходилось дебажить объекты и массивы.
Установка:
- Создайте каталог (если нет)
mu-plugins
чтобы вышло/wp-content/mu-plugins/
- Скачайте архив этого плагина, распакуйте архив на своем ПК и по FTP залейте туда файл
otshelnik-fm-kint.php
и папку/ot-fm-kint-resource/
Получится такая структура:
/wp-content/mu-plugins/ot-fm-kint-resource/
/wp-content/mu-plugins/otshelnik-fm-kint.php
- Настройки в файле otshelnik-fm-kint.php. Если будете использовать функции kint - раскомментируйте 33 строку. Если только мои - пропускаем этот шаг.
- Всё. Работаем и дебажим
Обновление:
MU плагины не обновляются средствами WordPress движка - т.к. они начинают работу раньше этих функций обновлений.
Поэтому за обновлениями следите, или на гите, или в на странице CodeSeller
Я добавил 5-ть своих функций:
vd($var, 1);
- (мой var_dump) - удобный дебаг вместо print_r() или var_dump().
2-й аргумент - необязательный параметр. Если нужно вывести в фиксированном окне слева сверху.
Полезно для "узких" мест вывода. Бесполезно для циклов. Фиксированный блок можно скрывать (спойлер на details теге)
vdd($var);
- аналог vd, но с die; на конце. Когда нужно остановить дальнейшую работу
vda($var, 1);
- (var_dump admin) - вывод на экран для админа
2-й аргумент - необязательный параметр. Если нужно вывести в фиксированном окне слева сверху.
Полезно для "узких" мест вывода. Бесполезно для циклов. Фиксированный блок можно скрывать (спойлер на details теге)
vdl($var);
- (var_dump log) - пишем в логи сервера. Когда выводить на экран нам нельзя (или это дебаг ajax запроса например).
vdx($var);
- (var_dump XHR) - для дебага ajax (смотри приходящие данные POST в вкладке XHR браузера) Наглядно: https://yadi.sk/i/CPGuKgwmSQTEKg
Вот основные, на мой взгляд, от Kint:
доступно, если выполнили пункт 3 "Настроек"
d($var);
- распечатает переменную
ddd($var);
- распечатает ее и остановит выполнение. Эквивалент d();die;
!d($var);
- сразу отобразит объект/переменную в раскрытом виде
d(1);
- сделает трассировку стека вызовов
s($var);
- выведет переменную в печатном виде
sd($var);
- выведет переменную в печатном виде и остановит. Эквивалент s();die;
p.s. Подробно описано на странице библиотеки Kint
2018-11-07
v2.0.0
-
добавлена функция vdx() - полезный помощник для простого дебага ajax в инструментах браузера "сеть"
Часто функция vdl() отнимала время - надо переключаться после запроса в логи сервера - получать их и высматривать там данные, а тут все происходит быстро
В панели разработчика браузера в post ответе (сеть - фильтр по XHR) приходят данные и их тип -
Kint обновлен до версии 3.0, но по дефолту теперь отключен. За полтора года я им воспользовался пару раз. Поэтому вначале он отключен.
-
Функции vd() и vda() принимают второй аргумент. Передайте туда 1, чтобы отобразить результат в фиксированном окне слева сверху.
Полезно для "узких" мест вывода. Бесполезно для циклов. Фиксированный блок можно скрывать (спойлер на details теге)
2017-03-15
v1.0.0
- Release
Wladimir Druzhaev (Otshelnik-Fm)
Licensed under the MIT License