Laravel 代码生成器
通过执行一条 Artisan 命令,完成注册路由、新建模型、新建表单验证类、新建资源控制器以及所需视图文件等任务
通过composer安装
$ composer require "summerblue/generator:~0.5" --dev
事例
$ php artisan make:scaffold Topic --schema="title:string:index,body:text,user_id:integer:unsigned:index,category_id:integer:unsigned:index,reply_count:integer:unsigned:default(0),view_count:integer:unsigned:default(0),last_reply_user_id:integer:unsigned:default(0),order:integer:unsigned:default(0),excerpt:text,slug:string:nullable"
title:string:index 标题 字段类型:string 索引
body:text 内容 字段类型:text
user_id:integer:unsigned:index 用户id 字段类型:int 非负数 索引
category_id:integer:unsigned:index 分类id 字段类型:int 索引 reply_count:integer:unsigned:default(0) view_count:integer:unsigned:default(0) last_reply_user_id:integer:unsigned:default(0) order:integer:unsigned:default(0) 排序 字段类型:int 非负数 默认值 excerpt:text slug:string:nullable SEO友好的url 字段类型:string 可以为空
操作生成的文件
创建话题的数据库迁移文件 —— 2018_07_9_111713_create_topics_table.php;
创建话题数据工厂文件 —— TopicFactory.php;
创建话题数据填充文件 —— TopicsTableSeeder.php;
创建模型基类文件 —— Model.php, 并创建话题数据模型;
创建话题控制器 —— TopicsController.php;
创建表单请求的基类文件 —— Request.php,并创建话题表单请求验证类;
创建话题模型事件监控器 TopicObserver 并在 AppServiceProvider 中注册;
创建授权策略基类文件 —— Policy.php,同时创建话题授权类,并在 AuthServiceProvider 中注册;
在 web.php 中更新路由,新增话题相关的资源路由;
新建符合资源控制器要求的三个话题视图文件,并存放于 resources/views/topics 目录中;
执行了数据库迁移命令 artisan migrate;
因此次操作新建了多个文件,最终执行 composer dump-autoload 来生成 classmap。