hexafuchs/laravel-dynamic-artisan-commands

用于动态替换 artisan 命令的库

v0.0.1 2024-06-30 12:21 UTC

This package is auto-updated.

Last update: 2024-09-08 02:51:05 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包旨在提供一种通用的接口来替换 artisan 命令。遗憾的是,原始包在这方面提供的可能性不多。我希望创建一个即使其他人想覆盖这些命令也不会崩溃的东西,并且是可重用的。

警告

请注意,此库处于早期 alpha 阶段。任何反馈都受欢迎。目前,我主要担心提供者的顺序是否会导致命令无法注册。请随时打开问题或创建讨论。

安装

您可以通过 composer 安装此包

composer require hexafuchs/laravel-dynamic-artisan-commands

用法

在您的 register() 方法中,添加以下片段。(如果您使用 spatie 包助手,请覆盖 registeringPackage() 函数)

DynamicArtisanServiceProvider::registerCommand('CommandName', CommandNameCommand::class, NewCommandNameCommand::class, false);

第一个参数是命令的名称。如果您的命令是 command:name,您应该将其写成 UpperCamelCase 表示法,即 CommandName。请参阅 \Illuminate\Foundation\Providers\ArtisanServiceProvider 了解所有现有命令名称的列表。

如果您想覆盖现有命令,第二个参数是原始命令类,第三个参数是您的扩展原始命令类的新命令类,或者是一个初始化您的新命令类对象的闭包。

如果您想创建新命令,第二个参数是您的命令类,第三个参数是 null 或初始化您的新命令类对象的闭包。

第四个参数用于定义开发命令而不是正常命令。我在这里留下了这个可能性,请注意,这些类型之间似乎没有功能差异。最有可能的是,它们仅用于命令的语义分离。

测试

composer test

更新日志

有关最近更改的更多信息,请参阅 CHANGELOG

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件