首页 > php框架 > Laravel > 正文

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

藏色散人
发布: 2020-09-28 13:28:27
转载
2515人浏览过

下面由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-generator

php 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\Example

php 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' => ''],];
登录后复制
  • 在此修改各模块的路径规则设置,会影响各文件的命名空间和类名

    方舟订单管理系统
    方舟订单管理系统

    系统开发由二当家的编写,代码完全开源,可自行修改源码,欢迎使用! 1、网站采用php语言开发,更安全、稳定、无漏洞、防注入、防丢单。 2、记录订单来路,客户IP记录及分析,订单数据统计 3、订单邮件提醒、手机短信提醒,让您第一时间追踪订单,大大提升了发货效率,提高订单成交率。 4、多种支付方式,包含:货到付款、支付宝接口、网银支付,可设置在线支付的折扣比率。 5、模板样式多样化,一个订单放到多个网

    方舟订单管理系统 0
    查看详情 方舟订单管理系统
  • 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

<?php

namespace 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

  1. 前端根据组件生成

以上就是随手搞个自用的代码生成包laravel-generator的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:learnku网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号