Как вы отлаживаете плагины?

Я довольно новичок в создании плагинов и с трудом проводил отладку.

Я использовал много эха, и он неряшлив и уродлив.

Я уверен, что есть лучший способ сделать это, возможно, IDE с отладчиком, чтобы я мог запустить весь сайт с включением плагина?

44 голоса | спросил Sruly 1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

16 ответов


21

Перейдите в wp-config.php и измените define('WP_DEBUG', false); в define('WP_DEBUG', true);. Также установите плагин Andrew Nacin Логарифмически устаревшие уведомления .

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
12

Если вы печатаете ошибки, то x-debug - это блестящее расширение PHP, которое добавляет современные обратные пути в PHP.

Если вы пытаетесь выяснить, что происходит там, где нет ошибок, мой любимый подход - определить функцию, которая регистрирует свой вывод в файле. Таким образом, я делаю plog (переменная $) и появляется в файле журнала, который затем могу проверить. Это особенно полезно, когда вы пытаетесь решить, что произошло до вызова header (), или в других ситуациях, когда вы не можете печатать в STDOUT.

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
10

Используйте xdebug + среду IDE NetBeans. Когда вы полностью настроены - что легко сделать, вы можете установить точки останова в своих плагинах и наблюдать за переменными в точках разлома. Я думаю, что это лучший способ отладки плагинов или любых приложений php.

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
6

Я отлаживаю старомодный способ, error_log() ing и var_dump ing. Я считаю, что это самый эффективный способ для меня. У меня есть несколько функций-оберток для обработки различных типов данных, поскольку массивы и объекты error_log ing могут быть больны. Кроме того, использование print_r() in может быть сложным для чтения, если оно не находится в <pre>. У меня есть tj_log() для регистрации ошибок и tj() для отображения вывода (который в основном показывает любой тип данных в презентабельной манноре:

function tj( $code ) {

    ?>
    <style>
        .tj_debug { word-wrap: break-word; white-space: pre; text-align: left; position: relative; background-color: rgba(0, 0, 0, 0.8); font-size: 11px; color: #a1a1a1; margin: 10px; padding: 10px; margin: 0 auto; width: 80%; overflow: auto; -moz-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -webkit-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -moz-border-radius: 5px; -webkit-border-radius: 5px; text-shadow: none; }
    </style>
    <br /><pre class="tj_debug">

    <?php
    if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
        var_dump( $code );

    else :
        print_r( $code );

    endif;

    echo '</pre><br />';

}

function tj_log( $code ) {

    if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
        $code = var_export( $code, true );

    else :
        $code = print_r( $code, true );

    endif;

    error_log( $code );

}

Итак, я просто делаю: tj( $current_user ); или что-то еще.

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
5

После обработки несколькими IDE я установил простой Notepad ++ с ультра-настраиваемой цветовой схемой выделения синтаксиса.

У меня есть макрос, настроенный таким образом, что когда я нажимаю Shift-Ctrl-X, следующий код выводится, где мой курсор:

echo "<pre>";
var_dump($);
echo "</pre>";
exit();

Это просто, но я могу вообще выследить 90% моих ошибок с помощью этого макроса плюс WP_DEBUG.

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
5

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

http://github.com/hunk/Magic- Поля /BLOB /Master /инструменты /debug.php

Вам нужно только сделать что-то вроде:

Debug :: log («Это отладочное сообщение»);

Когда эта строка будет выполнена, сообщение будет добавлено в файл журнала, после чего вы сможете использовать команду tail (если вы используете операционную систему стиля unix)

tail -f mylogfile.log

Если вы можете передать этой функции массив или объект.

note вам нужно изменить строку 20 для пути, в котором вы хотите сохранить файл журнала

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
3

Я использую Aptane IDE для Linux и UltraEdit для Windows, и у этого также есть PHP-парсер. Кроме того, я просматриваю все подсказки от xDebug с константой WP_DEBUG, определенной в wp-config.php.

См. также мою публикацию в этом разделе и не стесняйтесь комментировать и дать отзывы о ваших инструментах разработки.

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
2

Я рекомендую проверить FirePHP . Вы можете отправлять информацию об отладке в Firefox Firebug через HTTP-заголовки, что обычно делает более чистым вывод отладки.

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
2

Не так уж плохо: Eclipse Это близко к PhpStorm + бесплатно.

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
1

Есть две среды IDE, которые я могу порекомендовать, и я использовал оба варианта: PhpED (Только для Windows) и PhpStorm + XDEBUG (Mac, Windows и Linux.) Я сейчас на Mac поэтому он может использовать только последний.

Оба из них ROCK! Хорошие новости о том, что PhpStorm составляет 49 долларов США до сентября 2010 года и только 99 долларов США после этого. Если бы я был на Windows и должен был выбрать снова, не уверен, что бы я выбрал.

Откровенно говоря, я не могу не почувствовать, что любой разработчик плагинов, не использующий один из этих двух инструментов, имеет серьезные недостатки, особенно если они относительно новы для разработки плагинов WordPress.

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
1

Krumo - класс debug debug класса

Еще одна действительно приятная вещь - класс «krumo» php. Он реализован в ½ мин и предлагает простой способ отладки всех переменных:

  • объекты,
  • массивы,
  • строки /поплавок /число /др.

Плюс , он помогает при обратном трассировке, показывает загруженные классы или включенные файлы и все по запросу.

Плюс БЕСПЛАТНО!

Скачать

Krumo @sourceforge

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
0

Я использую плагин $ 13 под названием LogPress , который вы можете купить на ThemeForest, и это абсолютный Бог -Отправить. Вы можете отлаживать все, что связано с их плагинами и сайтом. Поддерживает протоколирование консоли Firebug и многое другое. Я не могу жить без него, вот насколько я использую этот плагин.

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

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
0

Я использую phpED и xdebug, но для меня (и, похоже, для кого-то другого) невозможно отлаживать плагины или файл темы! Отладчик останавливается только на контрольных точках, которые находятся в основных или оригинальных «основных» файлах! кто-нибудь может мне помочь?

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
0

Во-первых, я добавляю define('WP_DEBUG', false); в файл wp-config.php (как сказал большинство людей) моей локальной установке, которая является последней копией соответствующей продукции сайта (оба файла и данные). Это делает материал быстрым, безопасным, раздельным, но отражает, по крайней мере, одно место, которое фактически будет использовать плагин.

Я также добавляю плагин Debug Bar вместе с некоторыми из некоторых панелей Debug Bar надстройки (например, переходные процессы) - в зависимости от ваших плагинов.

Я также использую надстройку Firebug для Firefox, которая отлично подходит для отслеживания проблем с html, css и JavaScript, а также для поиска странности внешнего вида.

Я использую UltraEdit, который я использовал в течение 15 лет для целой группы кодирования (php до SQL) как на работе, так и на дому, и поэтому это хорошо работает для меня, но, возможно, мне недостаточно, чтобы оценивать как IDE для многих людей. Он имеет подсветку синтаксиса, функции автоматического завершения и компоновки кодов, а также набор инструментов быстрого доступа html и css, которые могут помочь избежать опечаток и аналогичных действий. В основном это приносит мне знакомство, что является важным аспектом, который часто упускается из виду в спешке с новым. Память мышц способствует повторяемости даже при кодировании.

И, конечно, у меня обычно есть подходящая страница из кода, открытая на другой вкладке на подходящем примере.

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

О, и нет ничего плохого в хорошо позиционированном эхе или print_r, чтобы что-то проверить на ключ (если вы удалите их, когда закончите).

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
0

Откроется Монитор запросов в сочетании с Query Monitor Extend для всесторонней отладки WordPress (PHP-ошибки /уведомления /строгие требования /предупреждения, запросы к базе данных, пути, константы , HTTP-запросы, переходные процессы, переменные сеанса, дампы var).

Также проверьте All Post Meta и Сохранение What плагинов для конкретной информации в сообщениях.

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39
0

PHPStorm и Xdebug - это игра, меняющаяся для разработки WordPress. Настоятельно рекомендуем сейчас. Специально с их встроенными инструментами отладки.

ответил Marcelo Viana 22 AMpSat, 22 Apr 2017 09:38:39 +030038Saturday 2017, 09:38:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132