packettide / sire
更好的 Laravel 4 生成器
Requires
- php: >=5.3.0
- mustache/mustache: dev-master
- packettide/bree: 1.*
- symfony/finder: 2.*
- symfony/yaml: 2.*
Requires (Dev)
- illuminate/console: 4.1.*
- illuminate/filesystem: 4.1.*
- illuminate/support: 4.1.*
- mockery/mockery: dev-master
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
按钮 - 自动生成用于模型创建和编辑的优秀表单
- 显示字段的真实名称(而不是变量名称)并显示关系中的属性
入门指南
-
将
"packettide/sire": "@dev"
添加到您的composer.json
文件的 require 块中 -
执行
composer update
-
将
'Packettide\Sire\SireServiceProvider',
添加到您的应用配置 providers 数组的末尾 -
设置一个表示您的模型的简单 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
。我们设置一个名为 directory
的 fieldTypeOption
并将其值设置为 "/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这是一个belongsTorelatedModel
告诉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