Рубрики
Uncategorized

Использование помощников Laravel d() и dd() в WordPress

Учебное пособие о том, как реализовать вспомогательные функции отладки Laravel d() и dd() в WordPress. С тегом wordpress, веб-разработчик, php, учебник.

Первоначально опубликовано на моем сайте 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”