随手搞个自用的代码生成包laravel-generator

2022-05-15 0 632

下面由Laravel教程栏目给大家介绍代码生成包laravel-generator,希望对需要的朋友有所帮助!

随手搞个自用的代码生成包laravel-generator

Laravel-generator 代码生成包

https://github.com/HogenYuan/laravel-generator

Introduction

由于最近在做后台,需要类似于Gii的代码生成包,网上可能有比较丰富的包,不过没怎么去了解过,就根据自己习惯随手写了个方便自己使用的包,写的比较匆忙所以代码可能比较粗糙。目前只写了后端的,前端有时间在写。

1. 根据自定义框架目录,修改*.stub生成自定义的初始代码

2. 支持model + filter + request + resource + service + controller + migration + test

3. 自动读取同名数据表并填充到 model + resource + migration 的字段


Installation

composer require hogen\\laravel-generatorphp artisan vendor:publish --tag=generator

config/app.php

'providers' => [    ···    App\\Console\\Commands\\Generator\\GeneratorServiceProvider::class];

Run

请先根据自己的框架目录和代码格式修改默认代码格式stub文件

## name : 必填,短横式命名的资源名称}## --module= : 必填,指定三级模块(大小写规范) 如:GasStation/MainCard/Balance## --prefix= : 指定二级前缀(大小写规范) 默认:AdminApi## --baseDir= : 指定一级目录(大小写规范) 默认:Http## --force : 覆盖已存在文件## --filter : 使用filter筛选类## --test : 生成测试文件例子://有大小写规范* Path: App\\Http\\Controller\\AdminApi\\User\\Example php artisan admin:make-resource testExample --force --baseDir=Http --prefix=AdminApi --module=User\\Example* Path: App\\Admin\\Controller\\User\\Examplephp artisan admin:make-resource testExample --force --filter --baseDir=Admin  --module=User\\Example

Deployment自定义配置

Generator\\MakeResource.php

protected $types = [    'model', 'request', 'resource', 'service', 'controller', 'test', 'migration'];

选择需要生成的组件,filter和test默认不开启

有先后顺序之分,需按照上图顺序填写

目录规则

protected $pathFormat = [    'model'      => ['inBaseDir' => false, 'prefix' => ''],    'service'    => ['inBaseDir' => false, 'prefix' => ''],    'test'       => ['inBaseDir' => false, 'prefix' => true],    'request'    => ['inBaseDir' => true, 'prefix' => true],    'resource'   => ['inBaseDir' => true, 'prefix' => true],    'controller' => ['inBaseDir' => true, 'prefix' => true],    'migration'  => ['inBaseDir' => false, 'prefix' => ''],];

在此修改各模块的路径规则设置,会影响各文件的命名空间和类名

inBaseDir决定是否在BaseDir内,默认Http

prefix决定是否在二级前缀内

Filter筛选器

protected $createFilter = false;protected $baseFilterHelperPath = "Models\\Traits\\Filter";

默认不开启

生成的filter基类的路径 例: App/Models/Traits/Filter.php

路径生成只遵循$pathFormat中model的inBaseDir规则,不遵循prefix,避免个trait的生成

数据库字段填充

/** * 手动配置 * resource文件中不需要添加到 $fillable 的字段 * * @var string[] */protected $resourceNoFillableFields = [    'update_time',    'updated_time',    'delete_time',    'deleted_time',];/** * 手动配置 * model文件中不需要添加到 $fillable 的字段 * * @var string[] */protected $modelNoFillableFields = [    'id',    'create_time',    'created_time',    'update_time',    'updated_time',    'delete_time',    'deleted_time',];

Code Format 修改默认代码格式

参考各stub配置自定义默认格式

以下stub为简化后的代码习惯,按需修改

Generator\\stubs\\*.stub

<?phpnamespace DummyNamespace;use NamespacedDummyModel;use NamespacedDummyRequest;use NamespacedDummyResource;use NamespacedDummyService;use BaseNamespaceResource\\EmptyResource;use BaseNamespaceController\\Controller;class DummyClass extends Controller{    public function index(DummyRequest $request){        $validated = $request->validated();        $dummyModels = DummyModel::query()            ->filter($validated)            ->orderByDesc('id')            ->paginate();        return DummyResource::collection($dummyModels);    }    ···}

TODO

前端根据组件生成

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 随手搞个自用的代码生成包laravel-generator https://www.jike1995.com/36161.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务