PHPackages                             hogen/laravel-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. hogen/laravel-generator

ActivePackage

hogen/laravel-generator
=======================

code generator for laravel

1.0.7(5y ago)513MITPHPPHP ^7.0

Since Sep 25Pushed 4y ago1 watchersCompare

[ Source](https://github.com/HogenYuan/laravel-generator)[ Packagist](https://packagist.org/packages/hogen/laravel-generator)[ RSS](/packages/hogen-laravel-generator/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (2)Dependencies (2)Versions (2)Used By (0)

Laravel-generator 代码数据生成包
=========================

[](#laravel-generator-代码数据生成包)

[![](https://camo.githubusercontent.com/ef2f365037e4ac6b822ac2bb6c8b80cc8d3984802760f18e8626bd558408f06d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f686f67656e2f6c61726176656c2d67656e657261746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/hogen/laravel-generator "Latest Version on Packagist")[![](https://camo.githubusercontent.com/8f0571646cf752c41b06b6b84a5f719fea3b72a47c56098d6bba7d776f6ca210/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f686f67656e2f6c61726176656c2d67656e657261746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/hogen/laravel-generator "Total Downloads")[![](https://camo.githubusercontent.com/1b01ef0024ba0866c115986b895301f657c1b21fc29f05c4844b7f2e8d89204d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e7376673f7374796c653d666c61742d737175617265)](LICENSE.md "MIT")

### Introduction

[](#introduction)

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

1. 根据自定义框架目录,修改\*.stub生成自定义的初始代码
2. 支持`model + filter + request + resource + service + controller + migration + test`
3. 自动读取同名数据表并填充到 `model + resource + migration` 的字段

---

### Installation

[](#installation)

```
composer require hogen/laravel-generator
php artisan vendor:publish --tag=generator
# 如更新出现问题，执行 composer remove hogen\laravel-generator 并把 app\Console\Commmands\Generator 删除

```

- config/app.php

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

---

### Run

[](#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自定义配置

[](#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筛选器

[](#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 修改默认代码格式

[](#code-format-修改默认代码格式)

- 参考各stub配置自定义默认格式
- 以下stub为简化后的代码习惯，按需修改

Generator\\stubs\\\*.stub

```
