simtabi / laravel-modulizer
一个用于创建 Laravel 包(模块)骨架的 CLI 工具。
Requires
- illuminate/support: 8.x|9.x
- symfony/filesystem: ^5.0|^6.0
- symfony/finder: ^5.0|^6.0
Suggests
- sensiolabs/security-checker: Required to use the security check command
This package is auto-updated.
Last update: 2024-09-26 19:24:54 UTC
README
此包为您提供了一种简单的方式来生成新的 Laravel 模块(包)模板,并且它将让您专注于包的开发,而不是使用 Laravel Modules 体验的样板代码。如果您喜欢视觉解释,请查看 Laracasts 上 Jeffrey Way 的这个视频 。
要求
Laravel 8 或 9 和 PHP 8.0
安装
您可以通过 composer 安装此包
composer require simtabi/laravel-modulizer
发布 config
和 stubs
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.json
和config/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发送电子邮件,而不是使用问题跟踪器。
鸣谢与灵感来源
许可证
请参阅许可证文件以获取更多信息。