Первоначально опубликовано на моем сайте 13 октября 2019 года
Вступление
Помимо того, что я “энтузиаст WordPress”, я также являюсь поклонником фреймворка Laravel. И иногда в Laravel есть некоторые приятные функции, которые можно перенести в WordPress. Я уже написал статью об использовании Laravel-Mix с WordPress , и в этой статье я хочу рассказать о функциях отладки d() и dd() .
Если вы когда-либо работали с фреймворком Laravel или, может быть, смотрели учебник, вы, вероятно, заметили бы использование d() (Свалка) и dd() (Дамп и смерть) вспомогательные функции отладки.
Эти две функции являются удивительной альтернативой собственным функциям Php print_r() и var_dump() . Они не только легче набираются, но и красиво печатают свои выходные данные, как показано ниже. И поверьте мне, как только вы начнете их использовать, вам больше никогда не захочется разрабатывать Php без них.
Используя функции Laravel d() и dd().
Я видел, как довольно много разработчиков использовали фрагмент кода, подобный приведенному ниже, для визуализации содержимого переменных. Может быть, это выглядит знакомо!?
echo ''; print_r( $somevar ); echo ''; die();
Теперь использование помощников d() и dd() намного проще и элегантнее. Посмотрите на этот маленький пример.
$array = array( 'one' => 'test one', 'two' => 'test two'); dd( $array );
В этом примере будет создан вывод, как показано на рисунке ниже.
Мило, да?
Я слышу, как вы думаете: “Это все хорошо и весело, но этих функций в WordPress не существует”!? Это правда! Но это не значит, что мы не можем добавить их сами.
Symfony Var-Самосвал
Под капотом эти две функции используют пакет Var-Dumper из фреймворка Symfony Php . Итак, чтобы создать свой собственный d() и dd() помощники, которые мы должны использовать Composer , чтобы запросить копию этого пакета.
Если у вас еще не установлен composer, вы можете ознакомиться с документацией здесь .
Чтобы установить пакет, выполните следующую команду в корневой папке вашей темы или плагина.
$ composer require symfony/var-dumper --dev
Это позволит загрузить копию пакета и поместить ее в каталог поставщика/symfony. И добавьте его в свой файл composer.json в качестве зависимости от разработки.
И добавьте его в свой файл || composer.json || в качестве зависимости от разработки.
Чтобы использовать пакеты, установленные composer в вашем коде, вы должны включить файл с именем autoload.php от поставщика каталог. Для этого вы можете поместить приведенный ниже фрагмент кода в свой functions.php . Или, если вы работаете над плагином, вам может потребоваться autoload.php файл где-нибудь в вашем основном файле плагина.
require_once __DIR__ . '/vendor/autoload.php';
Добавление помощников d() и dd() в WordPress
Теперь, когда у нас есть автозагрузка и пакет VarDumper , мы можем создать ваш собственный d() и функции dd() . Скопируйте приведенный ниже код в свой functions.php файл.
/*
|--------------------------------------------------------------------------
| Helper functions
|--------------------------------------------------------------------------
*/
/**
* Dump variables.
*/
if ( ! function_exists('d') ) {
function d() {
call_user_func_array( 'dump' , func_get_args() );
}
}
/**
* Dump variables and die.
*/
if ( ! function_exists('dd') ) {
function dd() {
call_user_func_array( 'dump' , func_get_args() );
die();
}
}
Обе функции довольно просты. Все, что они делают, это используют call_user_function_array() для вызова функции dump() из пакета dumper и передают любые аргументы с помощью функции func_get_args() . Функция dd() также останавливает выполнение кода, вызывая функцию php die() .
Теперь вы можете использовать вспомогательные функции в любом месте, как показано ниже.
$string = "I'm a string"; $array = array( 'one' => 'test one', 'two' => 'test two'); d( $string ); dd( $array , $string );
Обратите внимание, что вы можете передавать любое количество или типы переменных. Наши новые функции будут визуализировать их в последовательности, как показано ниже.
Вывод
Я не могу до конца объяснить, как здорово иметь таких помощников. Поэтому я могу только рекомендовать вам попробовать их самостоятельно. Они действительно могут снять часть боли при отладке, и я уверен, что вы полюбите их обоих. 😉
Подписывайтесь на меня в твиттере @Vanaf1979 или на Dev.to @Vanaf1979 получать уведомления о новых статьях и других ресурсах, связанных с разработкой WordPress.
Спасибо за чтение.
Оригинал: “https://dev.to/vanaf1979/using-laravel-d-and-dd-helpers-in-wordpress-2cbc”