• Время чтения ~1 мин
  • 10.08.2022

Команда Laravel about, выпущенная в Laravel 9.21, предоставляет отличный обзор важных конфигураций для вашего приложения. По умолчанию в нем перечислены сведения об окружении, статус кеша и настроенные драйверы:

Еще одна полезная функция новой команды about — это возможность для пакетов также добавлять полезную информацию. Например, мы рассмотрели компоненты Filament здесь, в новостях Laravel; после выпуска Laravel 9.21 Райан Чендлер открыл запрос на добавление полезной информации о плагине в Filament.

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

После этого введения, как бы вы добавили пользовательские данные в команду about?

Вы можете сделать это в поставщике услуг с помощью метода AboutCommand::add() в методе boot() поставщика услуг.

В следующем примере предположим, что я хочу, чтобы мой пакет или приложение выводило определенные значения конфигурации XDebug:

use Illuminate\Foundation\Console\AboutCommand;
 
// ...
 
public function boot()
{
    AboutCommand::add('XDebug Settings', [
        'Client Port' => fn() => ini_get('xdebug.client_port'),
        'Client Host' => fn() => ini_get('xdebug.client_host'),
        'Start With Request' => fn() => ini_get('xdebug.start_with_request'),
        'Max Nesting Level' => fn() => ini_get('xdebug.max_nesting_level'),
        'Mode' => fn() => ini_get('xdebug.mode'),
        'Output Dir' => fn() => ini_get('xdebug.output_dir'),
        'Log' => fn() => !empty(ini_get('xdebug.log')) ? ini_get('xdebug.log') : 'No Value',
    ]);
}

Вышеприведенное может выглядеть следующим образом локально, в зависимости от вашей конфигурации XDebug:

Отложенная загрузка

Одно дело Обратите внимание, что при создании пользовательских команд about вы должны лениво загружать вывод, заключая настройки в функцию стрелки fn() =>. Например:

1'Client Port' => ini_get('xdebug.client_port'), 2'Client Port' => fn() => ini_get('xdebug.client_port'),

Я рад видеть, что авторы пакетов полезной информации начинают добавлять в эту команду!

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297