TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

Используйте Kint для отладки в PHP / WordPress

693

Я покажу вам аккуратный маленький инструмент, который может сделать вашу жизнь программирования более комфортной. Я верю, что Kint только для тех, кто не может избавиться от привычки отлаживать код вручную!

Перед тем как продолжить, я рекомендую к прочтению данный пост, и именно данную реализацию Kint для WordPress.

Я знаю два вида разработчиков. Dev A – полный рабочий день, он работает методом проб и ошибок, пишет временно грязный код, чтобы чего-то добиться любой ценой. Только тогда код достигнет своего окончательного красивого поэтического стиля. Напротив, Dev B планирует все еще до того, как написать одну строчку кода, использует новейшие технологии для откачки и без того прекрасного кода, как в сказках. В случае, если вы Dev B, вы, вероятно, уже используете пошаговый отладчик, и вы находитесь за пределами того, что Kint может предложить вам. Для остальной части нас, крестьян, вот Вам замечательная замена var_dump() и print_r()функций  чем-то более быстрым для написания и создания красивого а главное быстро написанного кода.
Встречайте бесплатный инструмент отладки кода под названием Kint.

Прежде чем мы начнем: как насчет Xdebug?

Xdebug прекрасен, но это расширение PHP. У вас может не быть его в вашей установке, и, возможно, вы не можете установить расширения PHP. В этих случаях, независимо от того, насколько это хорошо, вы не можете его использовать. До Kint я использовал Xdebug, чтобы облегчить чтение экрана отладки. Как оказалось, Xdebug предназначен для гораздо большего, и когда я начал экспериментировать с различными средами разработки (например, на серверах), я обнаружил, что он не всегда был доступен. Даже если бы это было так, мне приходилось каждый раз настраивать его так, как я к нему привык. В конце концов я обнаружил Kint, который для меня лучше переносим. Я могу просто добавить его на сайт или проект WordPress, с которым я работаю, вместо того, чтобы устанавливать его для самого PHP.

Как Kint влияет на мою отладку?

Kint добавляет новые функции в таблицу, которые вы можете использовать в сочетании с тем, что вы использовали ранее, или вместо него. Это не правильный отладчик в понимании “высоко духовного кода”. Однако для нас, тех кто отлаживают код при помощи var_dump и т.п.. кинт является отличным решением.
Этот раздел не предназначен для копирования документации, поэтому я делюсь только тем, что лично использую.

// Instead of this mess var_dump($post); // I just use this d($post);

Сравните два, и должно быть ясно, какой из них лучше!

Отладка Kint для PHP: d () против var_dump ()

В других случаях я пишу, чтобы создать то, что было бы иначе. Даже не начинайте мене рассказывать о том, как много хаоса без визуальных улучшений. Я не мазохист. Это помогает, когда я пытаюсь выяснить, как поток выполнения достигает определенной функции в стороннем коде.d(1); debug_print_backtrace()

Если вы используете последнюю версию, Kint обнаруживает некоторые типы данных и дополнительно улучшает их отображение. В следующем примере я просто выгружаю строку, закодированную в base64, и смотрю, насколько умным является Kint, когда он декодирует, обнаруживает и отображает определенные шаблоны!

Kint разумно определяет тип данных при отладке PHP

Этот экземпляр Kint использует  тема, поэтому она выглядит немного лучше, чем другие демонстрации, которые вы видите в другом месте.

Как я могу получить Kint вручную?

Способ установки Kint не требует усилий. Он поставляется в виде одного файла .phar ( PH P Ar chive), и вы можете добавить его в свой проект с помощью одной строки:

include ‘kint.phar';

Если это сайт WordPress, то вы можете добавить его в

wp-config.php

файл и поместите kint.phar файл рядом с ним. Таким образом, он будет доступен везде в WordPress.

Рекомендуемые дополнения

Прежде всего, мне нравится мой отладочный вывод на месте, и эта строка помогает НЕ собирать все в плавающую папку / панель внизу экрана:

KintRendererRichRenderer::$folder = false;

К этому моменту вы достигли вехи, и вы уже намного лучше, чем раньше, в отношении отладки PHP. Если вы не хотите копать слишком глубоко, остановитесь! ????

Тематизация или изменение стиля

Вы можете захотеть настроить внешний вид. Например, размер шрифта слишком мал для меня, где говорится, откуда он был вызван (в форме мини-следа). Я попытался добавить тему (скин) следующим образом … Согласно документации, чтобы изменить тему отображения, используйте:

KintRendererRichRenderer::$theme = 'aante-light.css';

Вы можете передать абсолютный путь к файлу CSS или использовать одну из встроенных тем.

Да в Kint есть переключение на другой встроенный стиль (есть даже темный), но не тогда, когда я хотел добавить свой собственный. Я скачал, изменил несколько значений, затем загрузил его с помощью вышеуказанных настроек. Это не сработало, макет развалился. Что касается того, почему это не удалось, это остается загадкой. Итак, хотя приведенный выше метод PHAR хорош и быстр, я не возражаю против использования его альтернативным способом или даже более старых версий!

Плагин Kint Debugger для WordPress

К счастью, другие разработчики создали бесплатный плагин WordPress, обертку для Kint. Он называется Kint Debugger. 95% веса этого плагина – это просто оригинальная версия Kint, так что вы не получите ничего вздутого. Ничего не добавлено в панель управления WordPress. Тем не менее, это сделано с помощью некоторых вспомогательных функций, связанных с WordPress. Вы можете использовать каждую функцию так же, как вы установили ее, добавив эту строку в конфигурацию. Тем не менее, это чувствует себя лучше и проще.

На момент написания статьи плагин содержал версию 1.x Kint. Это было то, что у меня было до того, как они представили однофайловую версию PHAR. Этот имеет и не имеет проблем с пользовательским CSS. Кроме того, он не имеет плавающей нижней панели по умолчанию для сбора и перемещения ваших выходов из встроенного в централизованное местоположение. Я считаю это плюсом. Для меня плагин Kint Debugger WordPress означает настоящую отладку с нулевой конфигурацией, а не новый Kint.

Вернуться к тематике Кинт

Я показываю способ, которым я тематически вернул Kint, когда не-WordPress версия представляла собой набор файлов, а не один файл. Я создал копию уже существующего файла CSS в kint-debuggervendorkintviewcompiled. Назовем его firsh.css здесь, который содержит небольшие настройки, такие как увеличение размера шрифта и многое другое.

Тогда единственная строка кода, которую вам нужно добавить в ваш WordPress, это:

Kint::$theme = ‘firsh';

Я знаю, проблема с изменением плагина заключается в том, что при его обновлении этот пользовательский скин будет утерян. Поверьте мне, он не берет никаких файлов за пределы этой папки. Вот почему:

$baseDir = KINT_DIR . 'view/compiled/'; if ( !is_readable( $cssFile = $baseDir . Kint::$theme . '.css' ) ) { $cssFile = $baseDir . 'original.css'; }

Недостатки

Никогда не забывайте удалять вызовы функций Kint в производстве

Когда я очистил свой код и подготовил его к работе, однажды я ушел в вызовы функции. Излишне говорить, что без Кинта это означает фатальную ошибку. Ошибка произошла просто потому, что их трудно найти с помощью поиска. Фраза var_dump схожа с console.log в JS; это настолько уникально, что оно либо в файлах, либо нет. Но поиск справедливого, даже если вы включите магию регулярных выражений для предшествующего пробела, может быть удачным. Новые функции отладки настолько коротки и просты, что их легко случайно оставить .d()

Форматирование не всегда полезно

Когда вы просматриваете интерфейс в браузере, дополнительный стиль, несомненно, облегчает чтение. Но что, если вы проверяете ответы XHR ? Весь ад проваливается с ошибками «заголовки уже отправлены» и еще много чего. Причина в том, что фантазии Kint нужны некоторые встроенные скрипты и стили для сопровождения вашего отладочного вывода. Например, хотя AJAX необязательно нарушает авто сохранение сообщения, отлаживать его при помощи Kint не очень хорошая идея. С другой стороны, в отличие от Xdebug, Kint не принимает нативные функции и не украшает их HTML. Вы можете использовать стандартные функции отладки в небезопасныхvar_dump("hello"); d("hello"); (AJAX) и использовать дополнительные возможности Kint, когда они вам нужны для отладки по умолчанию.

Будете ли вы использовать Kint для отладки PHP?

Теперь, когда вы увидели, что есть способ сделать уродливые результаты отладки приятнее, ответьте на это. Готовы ли вы сделать свою жизнь проще? Измените ли вы свое окружение тонкими способами, чтобы помочь вам в повседневной работе ? Я, конечно, ответил самому себе ДА, когда узнал о Kint и сразу же начал использовать его для отладки. Я надеюсь, что этот пост поможет и Вам.

Источник записи: https://letswp.io

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее