michelmelo / laravel-package-generator
Laravel 包生成器
Requires (Dev)
- friendsofphp/php-cs-fixer: dev-master
README
1. 简介
Laravel 包生成器可以通过单个命令为您创建一个示例包
它包含了许多功能,使您的业务能够快速扩展
- 使用单个命令创建包。
2. 要求
- Laravel: v9.X.X 或更高版本。
3. 安装
使用 composer 安装
转到 Laravel 的根目录,并运行以下命令
composer require michelmelo/laravel-package-generator
4. 摘要
设置完成后,您将看到一系列包命令,这些命令可以帮助您轻松地创建包。
以下是命令列表:
--force : 覆盖文件
--plain : 当您只需要目录结构模板时,传递此参数时不会包含文件
5. 使用方法
让我们从第一个命令开始
01. 创建新的包
此命令将为您生成创建包时以前需要手动创建的所有必要文件。
php artisan mmpackage:make ACME/TestPackage
例如,如果您想创建一个名为 'TestPackage' 的包,则可以使用以下命令:
php artisan mmpackage:make ACME/TestPackage
这将为您自动创建整个目录结构,因此您无需手动进行,如注册路由、视图等。
仅使用目录结构的新的包
如果您只想手动创建目录结构,则可以使用名为 'plain' 的可选参数。以下是一个示例:
php artisan mmpackage:make ACME/TestPackage --plain
使用 force 命令创建新的包
如果文件夹或包已经存在,则简单命令将不起作用。因此,为了解决这个问题,我们需要使用 force 命令。
php artisan mmpackage:make ACME/TestPackage --force
02. 创建新的控制器
此命令将为您的部分生成一个新的控制器。
php artisan mmpackage:make-controller TestController ACME/TestPackage
使用 force 命令创建新的控制器
如果控制器已经存在,则您需要使用 force 命令。
php artisan mmpackage:make-controller TestController ACME/TestPackage --force
03. 创建新的路由文件
如果您想创建一个路由,则必须使用此命令,然后在服务提供者中注册您的路由文件,即 'ACME\TestPackage\Providers\TestPackageServiceProvider'。
php artisan mmpackage:make-route ACME/TestPackage
使用 force 命令创建新的路由文件
如果路由文件已经存在并且您想覆盖它,则必须使用 force 命令。
php artisan mmpackage:make-route ACME/TestPackage --force
04. 创建新的模型类
此命令将创建以下文件:
- 在 'packages/ACME/TestPackage/src/Models' 目录中创建新的模型类。
- 在 'packages/ACME/TestPackage/src/Models' 目录中创建新的模型代理类。
- 在 'packages/ACME/TestPackage/src/Contracts' 目录中创建新的模型合约。
php artisan mmpackage:make-model TestModel ACME/TestPackage
使用 force 命令创建新的模型
此命令将覆盖所有三个文件。
php artisan mmpackage:make-model TestModel ACME/TestPackage --force
05. 创建新的模型代理类
此命令将在 'packages/ACME/TestPackage/src/Models' 目录中创建新的模型代理类。
php artisan mmpackage:make-model-proxy TestModelProxy ACME/TestPackage
使用 force 命令创建新的模型代理
如果模型代理类已经存在,则可以使用 force 命令进行覆盖。
php artisan mmpackage:make-model-proxy TestModelProxy ACME/TestPackage --force
06. 创建新的模型合约
此命令将在 'packages/ACME/TestPackage/src/Contracts' 目录中创建新的模型合约。
php artisan mmpackage:make-model-contract TestContract ACME/TestPackage
使用 force 命令创建新的模型合约
如果模型合约已经存在,则可以使用 force 命令进行覆盖。
php artisan mmpackage:make-model-contract TestDataGrid ACME/TestPackage --force
07. 创建新的迁移类
此命令将在 'packages/ACME/TestPackage/src/Database/Migrations' 目录中创建新的迁移类。
php artisan mmpackage:make-migration TestMigration ACME/TestPackage
08. 创建新的种子类
此命令将在“packages/ACME/TestPackage/src/Database/Seeders”目录中创建一个新的播种类。
php artisan mmpackage:make-seeder TestSeeder ACME/TestPackage
使用强制命令创建新的播种类
如果播种类已经存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-seeder TestSeeder ACME/TestPackage --force
09. 创建新的请求类
此命令将在“packages/ACME/TestPackage/src/Http/Requests”目录中创建一个新的请求类。
php artisan mmpackage:make-request TestRequest ACME/TestPackage
使用强制命令创建新的请求类
如果请求类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-request TestRequest ACME/TestPackage --force
10. 创建新的中间件类
此命令将在“packages/ACME/TestPackage/src/Http/Middleware”目录中创建一个新的中间件类。
php artisan mmpackage:make-middleware TestMiddleware ACME/TestPackage
使用强制命令创建新的中间件类
如果中间件类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-middleware TestMiddleware ACME/TestPackage --force
11. 创建新的数据网格类
此命令将在“packages/ACME/TestPackage/src/Datagrids”目录中创建一个新的数据网格类。
php artisan mmpackage:make-datagrid TestDataGrid ACME/TestPackage
使用强制命令创建新的数据网格类
如果数据网格类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-datagrid TestDataGrid ACME/TestPackage --force
12. 创建新的仓库类
此命令将在“packages/ACME/TestPackage/src/Repositories”目录中创建一个新的仓库类。
php artisan mmpackage:make-repository TestRepository ACME/TestPackage
使用强制命令创建新的仓库
如果仓库类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-repository TestRepository ACME/TestPackage --force
13. 创建新的服务提供者类
此命令将在“packages/ACME/TestPackage/src/Providers”目录中创建一个新的服务提供者类。
php artisan mmpackage:make-provider TestServiceProvider ACME/TestPackage
使用强制命令创建新的服务提供者
如果服务提供者类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-provider TestServiceProvider ACME/TestPackage --force
14. 创建新的事件类
此命令将在“packages/ACME/TestPackage/src/Events”目录中创建一个新的事件类。
php artisan mmpackage:make-event TestEvent ACME/TestPackage
使用强制命令创建新的事件
如果事件类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-event TestEvent ACME/TestPackage --force
15. 创建新的监听器类
此命令将在“packages/ACME/TestPackage/src/Listeners”目录中创建一个新的监听器类。
php artisan mmpackage:make-listener TestListener ACME/TestPackage
使用强制命令创建新的监听器类
如果监听器类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-listener TestListener ACME/TestPackage --force
16. 创建新的通知类
此命令将在“packages/ACME/TestPackage/src/Notifications”目录中创建一个新的通知类。
php artisan mmpackage:make-notification TestNotification ACME/TestPackage
使用强制命令创建新的通知
如果通知类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-notification TestNotification ACME/TestPackage --force
17. 创建新的邮件类
此命令将在“packages/ACME/TestPackage/src/Mail”目录中创建一个新的邮件类。
php artisan mmpackage:make-mail TestMail ACME/TestPackage
使用强制命令创建新的邮件类
如果邮件类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-mail TestMail ACME/TestPackage --force
18. 创建新的命令类
此命令将在“packages/ACME/TestPackage/src/Console/Commands”目录中创建一个新的命令类。
php artisan mmpackage:make-command TestCommand ACME/TestPackage
使用强制命令创建新的命令类
如果命令类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-command TestCommand ACME/TestPackage --force
19. 创建新的模块服务提供者类
此命令将在“packages/ACME/TestPackage/src/Providers”目录中创建一个新的模块服务提供者类。
php artisan mmpackage:make-module-provider TestServiceProvider ACME/TestPackage
使用强制命令创建新的模块服务提供者
如果模块服务提供者类已存在,则可以使用强制命令进行覆盖。
php artisan mmpackage:make-module-provider TestServiceProvider ACME/TestPackage --force