simtabi/laravel-modulizer

一个用于创建 Laravel 包(模块)骨架的 CLI 工具。

dev-master 2022-08-26 15:09 UTC

This package is auto-updated.

Last update: 2024-09-26 19:24:54 UTC


README

banner

此包为您提供了一种简单的方式来生成新的 Laravel 模块(包)模板,并且它将让您专注于包的开发,而不是使用 Laravel Modules 体验的样板代码。如果您喜欢视觉解释,请查看 Laracasts 上 Jeffrey Way 的这个视频

要求

Laravel 8 或 9 和 PHP 8.0

安装

您可以通过 composer 安装此包

composer require simtabi/laravel-modulizer

发布 configstubs

php artisan vendor:publish --provider="Simtabi\Modulizer\ModulizerServiceProvider"

这将发布一个 modulizer.php 配置文件

它包含

    'ignore_files' => ['module.json'],
    'modules_path' => env('MODULIZER_MODULES_PATH', 'platform/modules'),
    'stubs_path'   => env('MODULIZER_STUBS_PATH', 'stubs/module'),

默认情况下,占位符将位于 path-to-vendor-package-folder/stubs/modulizer,您可以通过将路径添加到您的 .env 文件或更改配置文件来添加自己的路径。

MODULIZER_MODULES_PATH=your-custom-modules-destination-location
MODULIZER_STUBS_PATH=your-custom-stubs-location

使用方法

创建或更新占位符文件。文件名和内容应该包含占位符,例如 ModulesController 将被替换为您的名称 + Controller。例如,当命令执行时,ContactsController

占位符

这些占位符在运行 php artisan modulizer:module:generate 时被替换为提供的名称

1. 用在文件名中

Module = 模块名称,例如 Contacts

module = 模块名称的小写形式,例如 contacts

Model = 模型名称,例如 Contact

model = 模型名称的小写形式,例如 contact

对于名为 Models 的文件夹,将其重命名为 Entities,当生成新模块时,它将被重命名为 Models

2. 仅在文件内部使用

{Module} = 模块名称,例如 PurchaseOrders

{module} = 模块名称的小写形式,例如 purchaseOrder

{module_} = 带下划线的模块名称,例如 purchase_orders

{module-} = 带短横线的模块名称,例如 purchase-orders

{module } = 带空格的模块名称,例如 PurchaseOrders 变为 Purchase Orders

{Model} = 模型名称,例如 PurchaseOrder

{model} = 模型名称的小写形式,例如 purchaseOrder

{model_} = 带下划线的模型名称,例如 purchase_orders

{model-} = 带短横线的模型名称,例如 purchase-orders

{model } = 带空格的模型名称,例如 PurchaseOrder 变为 Purchase Order

可用命令

生成

命令

$ php artisan modulizer:module:generate my-vendor my-package

结果:该命令将为您处理几乎所有事情。它将创建一个包目录,在它内部创建供应商和包目录,拉取骨架包,设置 composer.json 并创建服务提供者。

选项

$ php artisan modulizer:module:generate my-vendor my-package --i
$ php artisan modulizer:module:generate --i

包将通过交互式方式创建,允许您在包的 composer.json 中配置一切,例如许可证和包描述。

$ php artisan modulizer:module:generate my-vendor/my-package

或者,您也可以使用正斜杠而不是空格来定义您的供应商和名称。

测试

命令

$ php artisan modulizer:module:tests

结果:Modulizer 将遍历所有维护的包(在 platform/modules/ 中),并将它们的测试发布到 tests/modules。为了从包中运行测试,请将以下内容添加到 phpunit.xml 中(在其他测试套件下):

<testsuite name="Packages">
    <directory suffix="Test.php">./tests/modules</directory>
</testsuite>

选项

$ php artisan modulizer:module:tests my-vendor my-package

备注:如果存在测试文件夹,则文件将被复制到Laravel App测试文件夹中的专用文件夹中。这允许您无需任何麻烦即可使用Laravel的所有测试功能。

列表

命令

$ php artisan modulizer:module:list

结果:显示/modules目录中所有包的概述。

选项

$ php artisan modulizer:module:list --git

如果是一个git仓库,则将显示包的git状态信息(分支、与origin的提交差异)。

删除

命令

$ php artisan modulizer:module:remove my-vendor my-package

结果:将删除my-vendor\my-package包,包括其在composer.jsonconfig/app.php中的引用。

发布

命令

$ php artisan modulizer:module:publish my-vendor my-package https://github.com/my-vendor/my-package

结果:将使用提供的url将my-vendor\my-package包发布到Github。

检查

命令

$ php artisan modulizer:module:check my-vendor my-package

结果:将使用SensioLabs安全检查器检查my-vendor\my-package包的安全漏洞。

备注:您首先需要运行

$ composer require sensiolabs/security-checker

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

欢迎贡献,并将得到全额认可。

通过Github上的Pull Requests接受贡献。

拉取请求

  • 记录任何行为变更 - 确保readme.md和其他相关文档保持最新。

  • 考虑我们的发布周期 - 我们尝试遵循SemVer v2.0.0。随机破坏公共API不是可选项。

  • 每个功能一个拉取请求 - 如果您想做更多的事情,请发送多个拉取请求。

安全

如果您发现任何与安全相关的问题,请通过imani@simtabi.com发送电子邮件,而不是使用问题跟踪器。

鸣谢与灵感来源

许可证

请参阅许可证文件以获取更多信息。