此包的最新版本(dev-master)没有提供许可证信息。

更好的 Laravel 4 生成器

dev-master / 1.0.x-dev 2014-02-04 20:34 UTC

This package is not auto-updated.

Last update: 2024-09-24 00:26:24 UTC


README

为 Laravel 提供出色的 YAML 生成器

Sire 允许您根据 YAML 描述文件生成模型、视图、控制器和迁移。这使得生成过程可重复和可调整。它生成的视图利用了 Bootstrap 3。

功能

  • 生成 Bree 增强模型
  • 您的模型可以有关联关系和验证规则
  • 您的视图将具有友好的真实名称,不再有 添加新 long_named_thing 按钮
  • 自动生成用于模型创建和编辑的优秀表单
  • 显示字段的真实名称(而不是变量名称)并显示关系中的属性

入门指南

  1. "packettide/sire": "@dev" 添加到您的 composer.json 文件的 require 块中

  2. 执行 composer update

  3. 'Packettide\Sire\SireServiceProvider', 添加到您的应用配置 providers 数组的末尾

  4. 设置一个表示您的模型的简单 YAML 文件

     _name: thing
     _makes:
     	- model
     	- view
     	- controller
     	- migration
     	- route
     _viewTheme: bs3
     _codeTheme: default
    
     title:
     	sqlType: string
     	fieldType: Text
     	label: Title
     	validation:
     		- required
    

_name 字段告诉 Sire 您要生成的(视图、控制器、模型、表和路由)实体的名称

  • 它应该是一个单数、蛇形命名。Sire 会将其转换为所需的其他名称格式,包括真实单词。

_makes 字段告诉 Sire 为此模型生成什么。当前选项包括

  • 模型
  • 视图
  • 控制器
  • 迁移
  • 路由
  • 种子
  • 交叉和更多功能即将推出。

_viewTheme 字段告诉 Sire 应用应具有的视觉外观。目前唯一选项是

  • bs3,这是一个由 Bootstrap 3 驱动的外观
  • naked,它只生成您应该围绕自己的标记进行包装的裸信息。
  • foundation5,基于 Zurb Foundation 的新版本。(注意:这处于实验阶段,可能在某些地方有点破损。)

_codeTheme 目前没有任何作用,但它是为了向前兼容而存在的

除了这些特殊参数外,还有模型成员。title 字段是将在生成的模型中出现的参数。

  • 它有一个 sqlType,告诉迁移生成器列应使用什么格式,有关可用的类型的更多信息,请参阅此处
  • fieldType 字段描述了生成的表单如何与参数交互。
  • label 只是标签。
  • validation 字段是参数应遵守的规则列表。这样一小段 YAML 就足以让您开始使用 Sire。

高级使用

字段选项

image:
	label: An Image
	sqlType: string
	fieldType: File
	fieldTypeOptions:
		directory: "/uploads/images"

这里有一个文件字段。Bree 中的文件字段需要知道您想要上传的目录。在 Sire 中,我们将其指定为 fieldTypeOptions。我们设置一个名为 directoryfieldTypeOption 并将其值设置为 "/uploads/images"。其他选项也是如此。

添加 hasMany

other:
  label: Other Thing
  fieldType: Cell
  relationshipType: hasMany
  relatedModel: Other

我们给这个字段指定了fieldType为Cell,因为它将通过提供创建Other模型新实例并将其附加到本模型的选择来表示hasMany。我们必须指定

  • relationshipType,这将告诉Sire这是一个hasMany关系
  • relatedModel,告诉Sire在这次关系中关联的类是什么

添加一个belongsTo

more:
	label: More Things
	fieldType: Relate
	fieldTypeOptions:
		select: true
		title: title
	relationshipType: belongsTo
	relatedModel: More

我们将给这个字段指定fieldType为Relate。belongsTo意味着对这个模型的迁移将有一个类型为整数的more_id。在这个字段

  • relationshipType告诉Sire这是一个belongsTo
  • relatedModel告诉Sire将其关联到more类
  • fieldTypeOptions告诉Sire我们希望这是一个选择关联,而不是单选按钮,并且我们希望用该模型的标题标记每个选项。

添加一个Seeder

特殊字段_seeds用于创建一个seeder。

_seeds:
	-
		title: ' "Thing One" '
		new: ' false '
	-
		title: ' "Thing Two" '
		new: ' true '

这将创建两个不同标题的Thing模型实例。在这里需要注意的最重要的事情是我们不能使用裸字符串。为了让Sire理解你的种子,你需要用'将其包装起来,此外,你还需要将单词“Thing One”和“Thing Two”用"包装起来,因为它们是字符串。这有点令人困惑,但这是由于yaml的工作方式所必需的。你可以看到,在布尔字段new中,我们没有用"包装它,因为它不是一个字符串。

最后,我们需要告诉Sire创建一个种子,如下所示

_makes:
	- model
	- view
	- controller
	- migration
	- route
	- seed