向 Laravel About 命令添加有用的信息

Laravel

Laravel 9.21 中发布的 Laravel about 命令为应用程序的重要配置提供了出色的概览。 它开箱即用,列出了环境详细信息、驱动程序的缓存状态和配置:

新的 about 命令的另一个巧妙功能是软件包也可以添加有用的信息。例如,我们在 Laravel 新闻中介绍了 Filament 组件; 在 Laravel 9.21 发布后,Ryan Chandler 向 Filament 发起了一个 pull request to add useful plugin details

我想我们会看到很多扩展包的作者在 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 配置,以上内容在本地可能如下所示:

懒加载

创建自定义命令时要注意的一件事是,您应该通过将设置包装在fn() => 箭头(匿名)函数中来延迟加载输出。 例如:

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

我很高兴看到扩展包作者会向这个命令添加一些有用的信息!

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/customize-larav...

译文地址:https://learnku.com/laravel/t/70189

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!