[扩展分享] Laravel 5.3 代码生成器 - summerblue/generator
Laravel 提供了很棒的功能特性,此生成器以构建实战项目为目标,利用这些特性,允许你快速构建健壮性和扩展性兼备的项目。
https://github.com/summerblue/generator
另:此项目遵守 优帆远扬 制定的 Laravel 项目开发规范。
功能列表
- 生成 数据库迁移;
- 数据填充 + 更新
DatabaseSeeder
类、添加 模型工厂 ; - 基础 数据模型 Mode 类l 和辅助
trait
; - 简洁的 RESTful 资源控制器,没有注释;
- 基础 表单请求 FormRequest 类 和每个模型对应的
StoreRequest
,UpdateRequest
类; - 基础 授权策略 Policy 类 和数据模型对应的 Policy,并自动注册到
AuthServiceProvider
类中; - 自动注册资源控制器至路由文件中;
- 增加 error 视图;
create
和edit
动作使用相同的视图文件。
安装
第一步、通过 Composer 安装
composer require 'summerblue/generator' --dev
第二步、增加服务提供者
打开 /app/Providers/AppServiceProvider.php
在 register 方法添加,如下:
public function register()
{
if (app()->environment() == 'local' || app()->environment() == 'testing') {
$this->app->register(\Summerblue\Generator\GeneratorsServiceProvider::class);
}
}
第三步、查看命令
在命令行运行 php artisan
后,查看是否有 make:scaffold
命令。
示例
使用以下命令来构建 Project 模型:
php artisan make:scaffold Projects --schema="name:string:index,description:text:nullable,subscriber_count:integer:unsigned,default(0)"
会输出:
$ php artisan make:scaffold Projects --schema="name:string:index,description:text:nullable,subscriber_count:integer:unsigned:default(0)"
----------- scaffolding: Project -----------
+ ./database/migrations/2017_04_17_065656_create_projects_table.php
+ ./database/factories/ModelFactory.php
+ ./database/seeds/ProjectsTableSeeder.php
+ ./database/seeds/DatabaseSeeder.php (Updated)
x ./app/Models/Model.php (Skipped)
+ ./app/Models/Project.php
+ ./app/Http/Controllers/ProjectsController.php
x ./app/Http/Requests/Request.php (Skipped)
+ ./app/Http/Requests/ProjectRequest.php
+ ./app/Observers/ProjectObserver.php
+ ./app/Providers/AppServiceProvider.php (Updated)
x ./app/Policies/Policy.php
+ ./app/Policies/ProjectPolicy.php
+ ./app/Providers/AuthServiceProvider.php (Updated)
+ ./routes/web.php (Updated)
--- Views ---
+ create_and_edit.blade.php
+ index.blade.php
+ show.blade.php
x ./resources/views/error.blade.php
Migrated: 2017_04_17_065656_create_projects_table
----------- -------------------- -----------
----------- >DUMP AUTOLOAD< -----------
效果图
未来计划
- API
- Admin
- Auto fill FormRequest rule
- Auto fill ModelFactory filed
感谢
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 7年前 自动加精
以后造轮子更加方便了!
跟infyomlabs/laravel-generator的功能类似吧,另外问一下支持Laravel 5.4吗?
:heart:
@iVanilla infyom 的更加完善,支持swagger,json配置导入等。
不过infyom也有蛮多坑的
@linzi007 到现在都不支持5.4
@iVanilla 只是个工具嘛,自己拿过来改改
赞一个先。
其实一直想做一个以变量、文件名为模板的generator,按模板目录生成对应目录结构的文件,文件内容也是变量替换。
按变量约定(CamelCase|snake_case)替换成对应格式的内容,更原始一点,功能定制其实更符合各人编码设计风格。
@nickfan
@linzi007
@iVanilla 这个项目主要是为了遵守自己公司 优帆远扬 制定的 Laravel 项目开发规范。
@Summer 请问在5.4的报错修复了吗?
laravel 5.3.31
报错信息
PHP Fatal error : Trait 'Illuminate\Console\DetectsApplicationNamespace' not found in ...generator\src\Commands\ScaffoldMakeCommand.php on line 26
好像是改名了,是不是现在不支持5.3了?
@Payne
@iVanilla 支持 5.3 了
@Summer 我知道支持5.3,不过5.4改了那个命名空间,所以有兼容问题
支持5.4吗。。。。很喜欢这个功能啊。。。
@monkey 已修改为 ProjectsController
@Summer OK,下一个项目即将使用此生成器
我安装时候,系统提示:
您正在运行带有ssl/tls保护功能的Composer。
警告:访问packagist.org http上这是一个不安全的协议。
然后一直安装不成功
通过composer无法安装 windows7安装的wamp环境 php7.0+
建议使用
@BestModer 并且统一使用教程环境