wamesk / laravel-commands
Laravel 创建命令。
Requires
- php: ^8.0|^8.1|^8.2
- eminiarts/nova-tabs: ^2.1
- laravel/framework: ^9.0|^10.0
- outl1ne/nova-sortable: ^2.0|^3.0
- wamesk/laravel-api-response: ^1.0
- wamesk/utils: ^1.0
README
Laravel 包,用于提供更优秀的 artisan 命令,以创建模型等。
安装
composer require wamesk/laravel-commands
使用此命令发布配置。
php artisan vendor:publish --provider="Wame\LaravelCommands\LaravelCommandsServiceProvider"
您可以在以下所示 config 文件夹中找到配置。
project
└─ config
└─ wame-commands.php
您可以在此处配置包命令
// config/wame-commands.php <?php return [ /* Version of ApiController you want to develop (v1, v2, v3, null) */ // 'version' => 'v1', // Default: null /* Typ of id your project is using (options: id (basic integer), uuid, ulid) */ // 'id-type' => 'uuid', // Default: ulid /* Enable or disable sorting in migration and model */ // 'sorting' => false, // Default: true /* Per page pagination default */ // 'per_page' => 10, // Default: 10 /* What language mutations should it generate. All will contain EN phrases. */ // 'langs' => ['en'], // Default: en /* You can disable commands that wame:make will run. By default, all will run. */ 'make' => [ // 'api-controllers' => false, // 'events' => false, // 'lang' => false, // 'listeners' => false, // 'migration' => false, // 'model' => false, // 'nova' => false, // 'observer' => false, // 'policy' => false, ], ];
用法
制作命令
此命令将运行以下列出的所有 php artisan
命令。
- wame:api-controller
- wame:events
- wame:lang
- wame:listeners
- wame:migration
- wame:model
- wame:nova
- wame:observer
- wame:policy
在命令末尾使用 name 参数运行命令。名称参数是您的模型名称。(例如:User)
php artisan wame:make <name>
运行此命令后,它将询问您是否要创建自定义配置。
Would you like to customize configuration for current model? (yes/no) [no]: >
您可以选择 是 或 否。
如果您选择 否(默认值),它将运行所有命令。注意:请确保您已设置配置文件。
如果您选择 是,它将询问您应该运行哪些命令(默认为 是)。(示例见下文)
注意:如果您在运行命令时创建自定义配置,它将忽略配置文件中设置为 false 的命令。
Create Model (yes/no) [yes]:
>
模型命令
此命令将创建带有预设方法的基 Model。
可以通过以下配置进行配置。
// wame-commands.php // Will add HasUuids or Ulids to model depending on id-type 'id-type' => 'ulid', // Other options: id, uuid // Will add SortableTrait and Sortable interface to class along with $sortable array config 'sorting' => true, // Other option: false
使用以下命令运行此命令
php artisan wame:model
Nova 资源命令
此命令将创建带有预设方法的基 Nova 资源。
可以通过以下配置进行配置。
// wame-commands.php // Will add SortableTrait and Sortable interface to class along with $sortable array config 'sorting' => true, // Other option: false
使用以下命令运行此命令
php artisan wame:nova
迁移命令
此命令将创建带有预设列的基迁移。
可以通过以下配置进行配置。
// wame-commands.php // Will add id column depending on id-type 'id-type' => 'ulid', // Other options: id, uuid // Will add `$table->unsignedInteger('sort')->nullable();` column 'sorting' => true, // Other option: false
使用以下命令运行此命令
php artisan wame:migration
观察者命令
此命令将创建带有预设函数和事件的基观察者。
使用以下命令运行此命令
php artisan wame:model
事件命令
此命令将创建带有预设构造、函数和类的基事件。
使用以下命令运行此命令
php artisan wame:events
监听器命令
此命令将创建基监听器作业。
使用以下命令运行此命令
php artisan wame:listeners
API 控制器命令
此命令将创建带有预设函数、响应和验证的基 API 控制器。它还将创建基模型资源并将其包含在控制器中。
使用以下命令运行此命令
php artisan wame:api-controller
语言命令
此命令将根据配置中定义的语言创建语言文件。
/* What language mutations should it generate. All will contain EN phrases. */ 'langs' => ['en'], // Default: en
输出
<?php return [ 'label' => 'Users', 'plural' => 'Users', 'singular' => 'User', 'detail' => 'User: :title', 'create.button' => 'Create user', 'update.button' => 'Update user', ];
使用以下命令运行此命令
php artisan wame:lang
策略命令
如果您使用serenysoft/nova-permissions 库,则此命令将创建策略。
php artisan wame:policy
工具
命令中使用的函数以及用于您的项目的函数在此处记录。
助手
使用以下方法将此工具包含到您的文件中
use Wame\LaravelCommands\Utils\Helpers;
创建目录
Helpers::createDir()
函数用于在您的项目中创建目录。
它需要一个目录路径参数 (string) 和可选的第二个参数,包含 chmod 规则。
此函数从 app 文件夹开始。
创建和/或打开文件
Helpers::createFile()
函数用于在您的项目中创建文件和/或打开文件。
它需要一个文件路径、名称和扩展名参数 (string) 和可选的第二个参数是模式 (string)。例如:'w' / 'r'。
此函数从 app 文件夹开始。
驼峰式转换器
Helpers::camelCaseConvert()
函数用于转换字符串
它需要一个要转换的字符串参数。
第二个参数是分隔符 (string) (默认: '_')。可选参数。
第三个参数是LowerCase (bool) (默认: false)。可选参数。如果单词应该以小写字母开头,则更改。
示例
$camelCase = Helpers::camelCaseConvert('SuperModel'); return $camelCase; // returns 'super_model'
验证器
本包默认使用的验证器。它通过链式调用函数并获取响应来工作。响应由 wamesk/laravel-api-response
包的函数生成。要更好地了解响应的工作原理,请查看响应包的文档这里
验证函数
这是一个最终函数。总是最后执行。它需要验证的数据和规则。关于规则的文档点击这里
使用示例
$data = ['email' => 'example@gmail.com', 'password' => 'password']; $validator = Validator::validate($data, [ 'email' => 'email|required|max:255', 'password' => 'required|string' ]); if ($validator) return $validator;
在验证错误的情况下,它将返回
{ "data": null, "code": null, "errors": { "email": [ "validation.required" ] }, "message": null }
代码函数
此函数在响应中添加内部代码。您可以传递第二个参数来更改消息翻译的前缀。
使用示例
$data = ['email' => 'example@gmail.com', 'password' => 'password']; $validator = Validator::code('1.2')->validate($data, [ 'email' => 'email|required|max:255', 'password' => 'required|string' ]); if ($validator) return $validator;
在验证错误的情况下,它将返回
{ "data": "1.2", "code": null, "errors": { "email": [ "validation.required" ] }, "message": "api.1.2" }
状态码函数
此函数在视觉上不会改变响应,但会更改响应的状态码。默认状态码是400 (Bad Request)。如果您想链式调用所有函数,它可以看起来像这样。状态码总是整数。
Validator::statusCode($statusCode)->code($code)->validate($data, $rules);