Laravel9.21中发布的Laravelabout 命令为应用程序提供了重要配置概览

172 阅读1分钟

Laravel9.21中发布的Laravelabout 命令为你的应用程序提供了一个很好的重要配置概览。开箱即用, 它列出了环境细节, 缓存状态, 和配置的驱动程序:

新的about命令的另一个整洁的特点是,软件包也可以添加有用的信息。例如, 我们已经在Laravel新闻中介绍了Filament组件; 在Laravel 9.21发布后, Ryan Chandler打开了一个拉动请求,为Filament添加有用的插件细节

我想我们会看到很多软件包作者在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配置。

懒惰加载

在创建自定义关于命令时要注意的一点是,你应该通过将设置包裹在一个fn() => 箭头函数中来懒惰地加载输出。比如说。

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

我很期待看到软件包作者开始为这个命令添加什么有用的信息