sunshinev/laravel-gii
Composer 安装命令:
composer require sunshinev/laravel-gii
包简介
visual code generator tools gii for laravel
关键字:
README 文档
README
Laravel Gii 为中小型项目快速创建管理后台,提供了一种新的可能。使用的过程中,你会发现很轻量,自由度很高,内部实现逻辑简单。
特别是熟悉iView的开发者,在通过Gii生成的页面上,可以根据自己的需求自定义页面,通过修改默认Input组件为其他功能丰富的iView组件,可以来构造更加复杂的管理页面。
你会发现它没有提供用户登录、权限功能,转而只是提供更加轻量化的页面创建,这点会让很多开发者们感到更加舒适,可以自由灵活的调整、自定义页面,来实现不同的能力。
感谢支持,欢迎在Issue提出意见
开始体验吧
[TOC]
原理
- 通过解析MySQL的数据表结构,来提取字段、以及类型,并填充到
stub模板。 - 生成对应的Model、Observer、Controller、View、Route等相关项目文件。
- 根据MySQL表结构生成Model
- 根据Model生成Controller
官网
https://sunshinev.github.io/laravel-gii-home
注意
因为是解析MySQL的表结构,并且根据字段生成模板,所以目前生成的Model类时只支持MySQL,但是生成的CRUD管理后台,可以使用支持mongo和MySQL两种connection。
MySQL表结构请保证id,created_at,updated_at三个字段必须存在。
安装
扩展包
Composer require sunshinev/laravel-gii -vvv
发布
该操作会发布assets静态文件,到public目录下
php artisan vendor:publish --tag laravel-gii
访问
在发布完成后,已经进行了路由的注册,可以通过下面的路由访问Gii页面
http:[domain]/gii/model
操作说明
生成Model模型
表单说明
- 表名称(支持下拉选择)
- Model类名(想要创建模型类,包含命名空间)
- 模型继承的父类(如果是Mongo可以继承
Jenssegers\Mongodb\Eloquent\Model,MySQL用Illuminate\Database\Eloquent\Model)
生成的文件列表,蓝色代表全新文件,红色代表已有文件但是存在不同,白色代表已有文件。
比如指定生成的Model命名空间为App\Models\Admin\Users,那么生成的目录结构为:
.app
├── Models
│ └── Admin
│ ├── UsersModel.php
│ └── Users.php
└── Observers
└── Models
└── Admin
└── UsersObserver.php
通过上面的结构,我们可以发现命名空间与目录之间的关系。
生成CRUD
CRUD的创建,需要依赖之前创建的模型。
该操作会同时生成:
- route
- controller
- views
表单说明
- 控制器名称(包含命名空间)
- 之前创建的模型类
如果指定Controller的类为App\Http\Controllers\Admin\UsersController ,以及关联的Model为App\Models\Admin\Users,那么生成的目录结构为:
app
├── Http
│ └── Controllers
│ └── Admin
│ ├── RenderController.php
│ └── UsersController.php
├── Models
│ └── Admin
│ ├── UsersModel.php
│ └── Users.php
└── Observers
└── Models
└── Admin
└── UsersObserver.php
以及生成的视图文件
.resources
└── views
└── admin
├── layouts
│ └── default.blade.php
└── users
├── create.blade.php
├── detail.blade.php
├── edit.blade.php
└── list.blade.php
通过上面的结构,我们可以发现命名空间与目录之间的关系。会发现admin实际想当于modules,通过模块化的概念,来划分功能。
如何访问CRUD?
CRUD的路由会自动添加到路由文件中,根据Controller的命名空间App\Http\Controllers\Admin\UsersController会生成如下的路由,所以请直接访问路由
Route::get('/admin/layout', 'Admin\RenderController@index');
Route::get('/admin/layout/render', 'Admin\RenderController@render');
特性
MySQL列表加载
文件对比
工具会将新生成的文件与已存在的文件进行差异对比,方便查看修改部分,控制修改范围。
路由追加
CRUD后台效果
列表页
包含全面的增删查改功能
- 列表
- 分页
- 检索
- 删除+批量删除
- 预览
- 详情
- 编辑
删除+批量删除
取消按钮放大,防止误删
行预览
编辑页面
建议
如果想用Mongo怎么办?
如果生成完Model之后,默认的会使用env中配置的connection,如果需要调整,需要修改生成的Model文件。
// if connection is empty ,use default connection protected $connection = '';
后台页面如何支持其他组件?
后台页面统一使用iview作为前端框架,目前支持iview4的所有组件,可直接在生成的blade模板文件中添加组件即可。
如何升级页面的iview组件?
生成的CRUD后台使用的是基于laravel-fe-render和base-fe 两个项目,其中base-fe是Vue+iview的打包,如下:
import Vue from 'vue' import ViewUI from 'view-design'; import 'view-design/dist/styles/iview.css'; Vue.use(ViewUI);
可以Fork base-fe项目,然后进行iview升级,将生成的dist目录放到laravel-fe-render项目的assets目录,然后重新发布即可.
关于Gii的iview.min.js
请参考 https://github.com/sunshinev/ViewUI 项目,Fork后做了细微调整
相关资料
https://github.com/sunshinev/laravel-fe-render
sunshinev/laravel-gii 适用场景与选型建议
sunshinev/laravel-gii 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 527 次下载、GitHub Stars 达 110, 最近一次更新时间为 2019 年 11 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「code generator」 「crud」 「gui」 「laravel」 「gii」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 sunshinev/laravel-gii 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sunshinev/laravel-gii 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 sunshinev/laravel-gii 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Memio's PrettyPrinter, used to generate PHP code from given Model
Gii Generator for double model generation
A PSR-7 compatible library for making CRUD API endpoints
Admin panel generator for Laravel 8 and based on Vuetify Admin, a separate SPA admin framework running on top of REST APIs.
Promotional Codes Generator for Laravel 5.1
Collection of tools to use the full power of the Enyalius framework
统计信息
- 总下载量: 527
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 111
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-11-25









