tisstech/bootstrap-laravel-scaffold

快速搭建 Laravel 应用的最快方式

dev-master 2015-10-09 16:45 UTC

This package is not auto-updated.

Last update: 2024-09-24 04:07:10 UTC


README

本包是从laravel scaffold分叉而来

自动生成您启动所需的所有文件。生成默认布局,设置 Bootstrap 或 Foundation,提示 JavaScript 文件(选项有 ember、angular、backbone、underscore 和 jquery),创建模型、控制器和视图,运行迁移,更新路由,并使用模拟数据填充新表格 - 所有这些只需一个命令即可完成。

安装

首先,通过 Composer 安装此包。编辑您项目的 composer.json 文件以需要 tisstech/bootstrap-laravel-scaffold

"require-dev": {
    "tisstech/bootstrap-laravel-scaffold": "dev-master"
}

接下来,在终端中更新 Composer

composer update

此操作完成后,下一步是添加服务提供者。打开 app/config/app.php,并向提供者数组中添加一个新条目。

'Tisstech\BootstrapLaravelScaffold\BootstrapLaravelScaffoldServiceProvider'

这就完成了!您已经准备就绪。从终端运行 artisan 命令以查看新的 scaffold 命令。

php artisan

配置

配置所有文件目录、类名、视图文件、是否需要仓库模式、要下载哪些 CSS/JS 文件,您还可以从模板文件夹内完全自定义视图和布局文件!请确保运行

php artisan config:publish tisstech/bootstrap-laravel-scaffold

以将配置文件包含在您的配置文件夹中。

命令

scaffold 将提示您输入布局文件和模型

scaffold:model 将提示您输入模型

scaffold:file "filename" 是您可以通过一个文件添加多个模型的方式

scaffold:update 在您的配置文件中定义的模型定义文件中查找更改,并相应地更新您的模型/迁移。

模板

此命令使用模板文件,因此您可以在您的应用目录中的 "templates" 文件夹(在您的配置文件中提供的位置 - 默认为 app/templates)中指定视图、控制器、仓库和测试的格式。

您也可以添加自己的视图,只要配置文件中的名称与模板文件夹内模板的名称相对应。

新功能

###保留模型定义的运行列表

现在有一个 scaffold:update 命令,非常酷!在您的配置文件中,您可以选择指定一个 "modelDefinitions" 文件,然后在这里放置所有您的模型定义。下面是一个示例。

resource = true
namespace = Oxford
University hasMany Department string( name city state homepage ) -nt
Department belongsTo University, hasMany Course string( name description ) number:integer
resource = false
Course belongsTo Department, hasMany Lesson string( name description ) integer( number credits ) -sd
  • 资源是指您的控制器是否是资源控制器。所有控制器都将遵循上一个 resource 设置,因此您可以混合和匹配。
  • 如果设置了命名空间,则它将全局应用,否则您可以通过在模型名称前加命名空间来命名特定的模型。

当您更新此文件并运行 php artisan scaffold:update 时,它将检查更改并自动更新您的模型/迁移!它将在与模型文件相同的目录中保留一个 "cache" 文件来跟踪更改,所以请不要编辑它!这允许命令知道是否有什么被删除。

可以从此文件中删除模型、字段和关系,并将自动生成迁移以删除相应的模型/字段/外键,同时更新模型。

模型语法

定义模型的语法非常简单。请查看一些示例

Book title:string published:datetime

或者,您可以更复杂地添加一个关系

书籍属于作者 标题:字符串 发布时间:日期时间

... 这将自动将 "author" 方法添加到您的 Book 模型中,并将 "author_id" 添加到迁移表中。它还会检查在创建书籍之前是否已创建或将要创建作者表,并自动分配外键。

您还可以包含命名空间

BarnesAndNoble\Book 属于作者 标题:字符串 发布时间:日期时间

不喜欢逐字输入所有内容?那也行!

book belongsto author 标题:字符串 发布时间:日期时间

您还可以添加多个关系!

Book 属于作者,hasMany Word 标题:字符串 发布时间:日期时间

您还可以向模型附加几个选项

  • -nt 是一个选项,可以将特定模型的时戳设置为 false(默认为 true)
  • -sd 是一个选项,可以将特定模型的软删除设置为 true。

有很多 "字符串" 或 "整数" 等属性吗?没问题,只需分组它们!

Book 属于作者 字符串( 标题 内容 描述 出版社 ) 发布时间:日期时间

如果您正在使用上述语法,请严格遵循它(目前)。

命令概述视频

阅读很无聊...看看这个概述: https://www.youtube.com/watch?v=6ESSjdUSNMw

这个视频现在有点过时了(增加了更多精彩功能),但概念仍然相同。

附加注释

种子使用 faker 生成每个表中 10 行随机数据。它将尝试确定类型,但您可以打开种子文件进行验证。有关 Faker 的更多信息:https://github.com/fzaninotto/Faker

奖励

想更进一步进行脚手架流程吗?!?!设置 foreman,将 tisstech/bootstrap-laravel-scaffold 添加到 require-dev 部分,设置一个 app 文件来复制,该文件添加了 laravel scaffold 服务提供程序,设置一个数据库文件来设置数据库以复制,最后设置一个 models.txt 文件来复制(示例上述)。将这个脚手架文件保存到方便的位置。

然后,您可以编辑您的 bash 文件以包含一个新的别名

alias laravel="foremancreate"
foremancreate(){
    foreman build /path/to/htdocs/folder/$1 /path/to/scaffold.json
    cd /path/to/htdocs/folder/$1
    composer update
    php artisan scaffold:file "app/models.txt"
    php artisan migrate
    php artisan db:seed
}

然后运行 laravel project-name 并观看您的应用程序完全构建和脚手架 :)

在youtube上观看 演示

1.0 版本要添加的功能

  • -nv 选项用于无视图
  • -m 选项用于仅迁移(交叉表)
  • 添加字段长度选项(名称:字符串|40)
  • 删除时限制/级联/空
  • 如果删除模型,则删除模型/控制器/存储库/视图/种子/测试
  • 如果删除属性,则更新模型/控制器/存储库/视图/种子/测试

未来想法

  • 添加命令 scaffold:rollback 以删除在最后一个脚手架更新期间创建的任何文件。
  • 根据指定的 js 框架自动创建 js 文件。