hogen/laravel-generator is a Laravel package for code generator for laravel.
It currently has 4 GitHub stars and 13 downloads on Packagist (latest version 1.0.7).
Install it with composer require hogen/laravel-generator.
Discover more Laravel packages by hogen
or browse all Laravel packages to compare alternatives.
Last updated
由于最近在做后台,需要类似于Gii的代码生成包,网上可能有比较丰富的包,不过没去了解过,就根据自己习惯随手写了个方便自己使用的包,写的比较匆忙所以代码可能比较粗糙。目前只写了后端的,前端有时间在写。
model + filter + request + resource + service + controller + migration + testmodel + resource + migration 的字段composer require hogen/laravel-generator
php artisan vendor:publish --tag=generator
# 如更新出现问题,执行 composer remove hogen\laravel-generator 并把 app\Console\Commmands\Generator 删除
'providers' => [
···
App\Console\Commands\Generator\GeneratorServiceProvider::class
];
## 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
Generator\MakeResource.php
protected $types = [
'model', 'request', 'resource', 'service', 'controller', 'test', 'migration'
];
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' => ''],
];
Httpprotected $createFilter = false;
protected $baseFilterHelperPath = "Models\Traits\Filter";
/**
* 手动配置
* 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',
];
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);
}
···
}