Skip to content

WordPress mu-plugin for debugging and development on php. Easy debug WordPress ajax

Notifications You must be signed in to change notification settings

Otshelnik-Fm/otshelnik-fm-kint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Внимание!!! Прекращение развития Otshelnik-Fm Kint

За годы я перестал использовать библиотеку 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 - и она мне сильно пригодилась когда приходилось дебажить объекты и массивы.


Установка/Обновление

Установка:

  1. Создайте каталог (если нет) mu-plugins чтобы вышло /wp-content/mu-plugins/
  2. Скачайте архив этого плагина, распакуйте архив на своем ПК и по 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
  1. Настройки в файле otshelnik-fm-kint.php. Если будете использовать функции kint - раскомментируйте 33 строку. Если только мои - пропускаем этот шаг.
  2. Всё. Работаем и дебажим

Обновление:

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


Changelog

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

Author

Wladimir Druzhaev (Otshelnik-Fm)


License

Licensed under the MIT License