mayconbordin/laragen

Laravel 5 数据库生成器/脚手架。

dev-master 2015-12-10 17:42 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:47:26 UTC


README

Laragen 是一个用于 Laravel 5 的代码生成工具。

此工具可以生成以下组件:

  • 迁移文件(+枢轴迁移)
  • 模型
  • 仓库
  • 控制器
  • 数据库 Seeder
  • 视图(CRUD + 表单)
  • 表单请求
  • 语言资源

它还可以一次性生成所有组件,您还可以从数据库模式生成您的组件。

文档

  1. 安装
  2. 配置
  3. 生成器命令
    1. 迁移
    2. 模型
    3. 仓库
    4. 控制器
    5. 数据库 Seeder
    6. 视图
    7. 表单请求
    8. 语言资源
    9. 脚手架

安装

为了安装 Laragen,只需将其添加到您的 composer.json 中。

"mayconbordin/laragen": "dev-master"

然后运行 composer installcomposer update

然后在您的 config/app.php 中添加

'Mayconbordin\Laragen\GeneratorServiceProvider'

providers 数组中。

配置

要发布此包的配置,请执行 php artisan vendor:publish,然后在您的 app/config 目录中创建一个 generator.php 文件。

配置文件包含每种类型组件的默认路径,即生成的组件将保存的位置,以及用于某些组件(例如模型和控制台)的命名空间。

生成器命令

迁移

php artisan generate:migration [options] [<name>]

迁移生成器可以通过两种方式创建迁移:通过提供迁移的 name(可选地提供 fields 选项)或通过使用数据库连接为所有表(或部分表)生成迁移。

迁移名称

根据迁移名称中使用的关键字,将使用不同的模板来生成迁移。从迁移名称中,生成器还会推导出表的名称。

  • createmakecreate_users_table):创建新表的迁移。
  • addappendupdateinsertadd_user_id_to_posts_table):向现有表添加新列。
  • removedeleteremove_user_id_from_posts_table):从表中删除现有列。
  • destroydropdrop_users_table):删除现有表。

选项

  • --fields[=FIELDS]:迁移的字段,用逗号(,)分隔。
  • --action:动作名称:create、create_simple、add、delete 或 drop。覆盖从迁移名称解析出的动作。
  • -c, --connection:要使用的数据库连接。默认:配置中的 database.default
  • -t, --tables[=TABLES]:您希望为其生成迁移的表的列表,用逗号分隔:users,posts,comments
  • -i, --ignore[=IGNORE]:您希望忽略的表的列表,用逗号分隔:users,posts,comments
  • --default-index-names:如果提供,则迁移不会使用数据库中的索引名称。
  • --default-fk-names:如果提供,则迁移不会使用数据库中的外键名称。

字段语法

迁移的字段声明为一个逗号分隔的键:值:选项对列表,其中 key 是字段名称,value列类型option 可以描述列修饰符,例如 nullableuniqueunsigned。示例

  • --fields="username:string:unique, email:string:unique"
  • 字段="age:整数, yob:日期"
  • 字段="name:字符串:默认('John Doe'), bio:文本:可空"
  • 字段="username:字符串(30):唯一, age:整数:可空:默认(18)"
  • 字段="username:字符串, user_type_id:整数:无符号:可空:外键"

示例

创建一个posts

php artisan generate:migration create_posts_table --fields="title:string, body:text"

删除posts

php artisan generate:migration drop_posts_table

仅删除body

php artisan generate:migration remove_body_from_posts_table --fields="body:text"

mysql数据库连接中所有表创建迁移

php artisan generate:migration --connection=mysql

交叉表迁移

php artisan generate:pivot [options] <table_one> <table_two>

选项

  • -t, --timestamp: 向迁移模式添加时间戳。

模型

php artisan generate:model [options] <name>

选项

  • --fields[=FIELDS]: 模型的字段,用逗号(,)分隔。语法与迁移相同,可以用来生成验证规则。
  • --fillable: 用逗号分隔的字段名称列表,这些字段是可填充的。
  • --table-name: 如果表名与模型名不同。

仓库

php artisan generate:repository [options] <name>

基于reloquent创建一个新的存储库,它所表示的模型将从名称中推断出来(例如,UserRepository将引用User模型)。

控制器

php artisan generate:controller [options] <name>

使用给定的<name>创建一个新的控制器(例如,UserController)。默认情况下,创建的控制器没有方法,更多选项请参阅下面。

选项

  • -r, --resource: 将生成资源控制器,即带有CRUD方法(方法没有逻辑)。
  • -s, --scaffold: 将生成脚手架控制器,即带有CRUD方法和逻辑。
  • --repository: 与脚手架控制器相同,但使用存储库而不是Eloquent模型进行数据处理。

数据库 Seeder

php artisan generate:seed [options] <name>

选项

  • -m, --master: 将生成主数据库种子。

视图

php artisan generate:view [options] <name>

使用名称<name>创建一个新的视图文件。

选项

  • -e, --extends: 正在使用视图布局的名称。默认:layouts.master
  • -s, --section: 正在使用的节名称。默认:content
  • -c, --content: 视图内容。
  • -t, --template: 视图模板的路径。提供它以使用自定义模板。
  • -m, --master: 创建主视图。
  • -p, --plain: 创建空白视图。

表单请求

php artisan generate:request [options] <name>

选项

  • -r, --rules: 验证规则的列表。示例:name:string|max(255)|required, age:integer|required, email:unique(users;email_address)|required
  • --fields[=FIELDS]: 创建规则的字段。用逗号(,)分隔。
  • -s, --scaffold: 确定是否使用脚手架生成的请求类。
  • -a, --auth: 确定请求类是否需要授权。

语言资源

php artisan generate:lang [options] <name>

使用给定的<name>创建一个新的语言资源。

选项

  • -l, --languages: 资源中将创建的语言列表(用逗号分隔)。默认:en。
  • -t, --translations: 要包含在资源文件中的翻译列表。示例:"test1='test one', test2='teste two'

脚手架

php artisan generate:scaffold [options] <name>

为给定的<name>实体创建所有上述组件。

选项

  • --fields[=FIELDS]: 实体的字段,用逗号(,)分隔。
  • --prefix: 视图路径、路由和控制器类的前缀。
  • -c, --connection:要使用的数据库连接。默认:配置中的 database.default
  • -t, --tables[=TABLES]:您希望为其生成迁移的表的列表,用逗号分隔:users,posts,comments
  • -i, --ignore[=IGNORE]:您希望忽略的表的列表,用逗号分隔:users,posts,comments
  • --default-index-names:如果提供,则迁移不会使用数据库中的索引名称。
  • --default-fk-names:如果提供,则迁移不会使用数据库中的外键名称。
  • -l, --languages: 资源中将创建的语言列表(用逗号分隔)。默认:en。
  • --no-question: 不提出任何问题。
  • --repository: 生成存储库类和使用存储库的控制器。