在 Laravel About 命令中添加有用信息
发布日期:作者: Paul Redmond
在 Laravel 9.21 中发布的 Laravel about
命令提供了对应用程序重要配置的出色概述。默认情况下,它列出环境详细信息、缓存状态和配置的驱动程序
新 about 命令的另一个巧妙功能是允许包添加有用的信息。例如,我们已经在 Laravel News 上介绍了 Filament 组件;在 Laravel 9.21 发布后,Ryan Chandler 提交了一个 拉取请求以将有用的插件详细信息 添加到 Filament。
我认为我们将看到许多包作者将有用的详细信息添加到 about
命令中。希望最终用户不会被过多的信息淹没,或者包开发者使 about 命令中数据的包含可配置。
有了这个介绍,您将如何向 about
命令添加自定义数据?
您可以在服务提供者中执行此操作,在服务提供者的 boot()
方法中使用 AboutCommand::add()
方法。
在以下示例中,假设我想让我的包或应用程序输出特定的 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() =>
箭头函数中来延迟加载输出。例如
-'Client Port' => ini_get('xdebug.client_port'), +'Client Port' => fn() => ini_get('xdebug.client_port'),
我很期待看到包作者开始向此命令添加哪些有用的信息!