下面由Laravel教程栏目给大家介绍代码生成包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
'providers' => [
··· App\Console\Commands\Generator\GeneratorServiceProvider::class];Run
## 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' => ''],];在此修改各模块的路径规则设置,会影响各文件的命名空间和类名
注意:请在linux环境下测试或生产使用 青鸟内测是一个移动应用分发系统,支持安卓苹果应用上传与下载,并且还能快捷封装网址为应用。应用内测分发:一键上传APP应用包,自动生成下载链接和二维码,方便用户内测下载。应用封装:一键即可生成app,无需写代码,可视化编辑、 直接拖拽组件制作页面的高效平台。工具箱:安卓证书生成、提取UDID、Plist文件在线制作、IOS封装、APP图标在线制作APP分发:
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
以上就是随手搞个自用的代码生成包laravel-generator的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号