基于 Laravel 的后台脚手架 Scaffold for laravel

MIT
PHP 查看源码»
跨平台
2018-07-05
zgldh

zgldh/Scaffold

基于 Laravel 5.5, Vue 2, ElementUI 2, vueAdmin-template 制作的后台脚手架。

预制功能:

  • 用户,角色,权限体系

  • 文件上传

  • 通知系统

  • 完全脱离 Cookie/Session 机制。全面拥抱 JWT。自动刷新 Token

  • 强化的前端数据表格,使用 datatables 协议。

  • 多语言

开始使用

  1. composer create-project zgldh/scaffold your-project-dir

  2. 配置好 .env 数据库相关

  3. php artisan scaffold:init

    会自动执行以下命令

    • migrate

    • storage:link

    • db:seed --class=ScaffoldInitialSeeder

    • scaffold:update-permissions

    • lang:dump

  4. 配置好 frontend/config/dev.env.js 的 BASE_API

  5. npm install

  6. npm run start

生成器

名称命令
模块初始化scaffold:module {moduleName} {--force}
模型初始化scaffold:model {modelStarterClass} {--only=*} {--force}
API 生成scaffold:api {method} {route} {moduleName} {--controller=} {--action=}
权限生成scaffold:update-permissions {type=api : set guard name}
语言文件导出lang:dump

模块初始化

scaffold:module {moduleName} {--force}

模块是指一个独立的功能领域。使用本命令将初始化一个模块。

Example

scaffold:module Post

将创建好如下目录和文件:

  • Modules/Post

  • Modules/Post/routes.php

  • Modules/Post/PostServiceProvider.php

  • frontend/src/store/modules/post.js

并自动修改好如下文件:

  • config/api.php

  • routes/api.php

  • frontend/src/store/index.js

模型初始化

scaffold:model {modelStarterClass} {--only=*} {--force}

模型是指数据模型,对应着一个数据表。需要一个 Starter Class 来描述该模型。

使用本命令将初始化该模型的migration filecontrollermodelrequestrepositoryroutefactory, PHP 单元测试和前端脚手架文件。基本的 CRUD 都准备好了。

如何编写 Starter Class 请参考源码: Modules\Post\PostStarter.php

--only 取值: controller, request, repository, model, migration, api, resource, language, route, factory, phpunit 将只生成对应文件。

Example

scaffold:model Modules/Post/PostStarter.php

将创建好如下目录和文件:

  • Modules/Post

  • Modules/Post/Controllers/PostController.php

  • Modules/Post/Repositories/PostRepository.php

  • Modules/Post/Models/Post.php

  • Modules/Post/Requests/CreatePostRequest.php

  • Modules/Post/Requests/UpdatePostRequest.php

  • resources/lang/en/post.php

  • resources/lang/zh-CN/post.php

  • database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php

  • database/factories/PostFactory.php

  • tests/Modules/Post

  • tests/Modules/Post/Post/PostIndexTest.php

  • tests/Modules/Post/Post/PostStoreTest.php

  • tests/Modules/Post/Post/PostShowTest.php

  • tests/Modules/Post/Post/PostUpdateTest.php

  • tests/Modules/Post/Post/PostDestroyTest.php

  • frontend/src/api/post.js

  • frontend/src/views/post

  • frontend/src/views/post/Post/List.vue

  • frontend/src/views/post/Post/Editor.vue

并自动修改好如下文件:

  • Modules/Post/routes.php

  • frontend/src/router/dynamicRouterMap.js

API 生成

scaffold:api {method} {route} {moduleName} {--controller=} {--action=}

方便的生成一个单独的 API 和周边的各种类、单元测试、前台接口等。

Example

scaffold:api put /post/{id}/like Post

将创建好如下目录和文件:

  • Modules/Post/Requests/PutIdLikeRequest.php

  • Modules/Post/routes.php

  • tests/Modules/Post/Post/PutIdLikeTest.php

并自动修改好如下文件:

  • Modules/Post/Controllers/PostController.php

  • Modules/Post/routes.php

  • frontend/src/api/post.js

并创建权限:

  • Post@putIdLike

权限生成

scaffold:update-permissions {type=api : set guard name}

遍历 Modules 下所有的 controller 和 repository。 根据其公共函数生成一系列权限,并自动赋予超级管理员。

如果函数的注释内,包含有 @no-permission 标记,则跳过该函数。

Example

scaffold:update-permissions

将自动修改对应 model 的语言文件的 permissions 数组,并创建一系列权限。

会自动跳过重复权限。

语言文件导出

lang:dump

将 PHP 语言文件导出为前端语言文件。使得前端 vue-i18n 组件也可使用。

导出产物储存在 frontend/src/lang/languages.js

组件说明

TODO

预制功能说明

TODO

感谢

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

laravel开发资源

集大成者 http://labs.infyom.com/laravelgenerator/ We have worked on many projects that required to create APIs and scaffold CRUD type of thing. And the problem that we faced was...

2016/02/21 23:18
319
1
Rails Scaffold

Scaffolding in Ruby on Rails refers to the auto-generation of a set of a model, views and a controller usually used for a single database table. For example, you can auto-genera...

2018/02/07 20:14
7
0
Laravel5.3之Two-Factor Authentication神器——Duo

说明:本文主要研究利用Duo来实现双重认证,Two-Factor Authentication就是除了username-password这种登录认证之外,还使用第二层安全认证,引用官网What is Two-Factor Authentication?的一...

2016/11/16 09:53
30
0
Scaffold-DbContext

Scaffold-DbContext Scaffold-DbContext 是 EntityFramework(Core) 用来生成数据库上下文的一个脚手架工具. 应用场景 当你有一个现成的数据库时,可以使用 Scaffold-DbContext 生成对应的数据...

2018/09/29 09:36
775
0
cakephp中利用脚手架快速实现对表的增删改

http://my.oschina.net/adamboy/blog 应用程序脚手架是一种允许开发人员快速定义和创建查、删、改、新程序(CRUD)的技术。CakePHP的脚手架还允许开发人员定义对象之间如何相互联合,以及创建...

2011/06/02 14:49
549
0
新建工程脚手架

## 新建工程 + rails new 工程名称 ## 新建脚手架 + rails g scaffold controller的名称(默认数据库表名为该名称的复数) 表字段名称:表字段类型 + 示例: ``` rails g scaffold tb_custom...

2018/02/11 09:15
23
0
arailsdemo 2

# ## 使用 simple_form ``` ruby #Gemfile gem 'simple_form' ____________________________ #Terminal > bundle > rails g simple_form:install ``` ## Scaffold 生成 post ``` > rails ...

2014/01/14 23:11
11
0
2、Flutter常用组件-Text文本组件

一、新建Flutter项目 打开Andorid Studio ,出现下面的界面,选择第二项,新建Flutter项目。 打开第二个窗口后,选择第一个选项Flutter Application(flutter应用),点击Next。 分别填入或选择...

10/10 17:31
17
0
arailsdemo 13

# ## Scaffold 生成 Announcement 每次使用 scaffold 时,它都会问我们是否‘重写’ scaffold.css, 这确实很烦人,让我们一起改变它! config/application.rb, Terminal and app/models/ann...

2014/01/15 07:42
5
0
在ubuntu创建第一个Ruby on Rails程序总结

1.指定数据库 rails app --d mysql --d 是两条横线,之前看教程看到是一条横线,结果创建了两个项目,另外一个是mysql项目。 2.数据库表名称是区分大小,之前没注意 配置好database.yml后 ru...

2011/04/09 19:27
152
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部