ACF 核心原则
虽然 mvc.lua 代码为任何基于 lua "mvc" 的应用程序提供了一个通用框架,但 "acf" 是使 mvc.lua 框架成为 Web 配置应用程序的组件。 此处讨论了关于应用程序范围设置的一些想法和理由。
cfe 的使用
cfe (Configuration Framework Entity,配置框架实体) 是一种在模型、控制器和视图之间以通用方式传递数据的方法。 有许多方法可以做到这一点(例如,闭包、AKClass); 使用 cfe 只是为了推动开发前进的任意决定。
cfe 是一个包含保证存在的字段的表。 它也是一种从以视图为中心的 HTML 输入类型中抽象出用户可修改数据的方法。 ACF 不一定仅限于 Web。 通过不同的控制器和视图,它可以是 cli(或 gui?!)。 acf-cli 应用程序就是这方面的一个例子。
所有 cfe 中的字段
cfe 由以下位置的函数构造mvc.lua该函数返回一个包含以下字段的匿名表
字段 | 默认值 | 描述 |
---|---|---|
value | "" | cfe 的值(例如,IP 地址、主机名、密码等) |
type | "text" | 实体的类型(见下文) |
label | "" | 用户可读的值标签 |
预定义这些字段的原因是允许模型、控制器和视图使用索引,而无需首先检查它们是否存在。 例如,实体将始终具有值和类型。
cfe 可以有其他字段。 一些可能存在或可能不存在的常见字段
字段 | 描述 |
---|---|
errtxt | 解释验证失败原因的文本 |
option | 此值的选项列表 |
descr | 用户可读的值描述 |
seq | 数字序列,建议 cfe 在组或表单中的显示顺序 |
default | 默认值(可以向用户显示) |
readonly | 如果存在,则表示信息将显示,但不可编辑,通常在表单中使用 |
要设置字段或覆盖字段默认值,请在 cfe 构造函数的参数列表中指定一个表
- mycfe = cfe({label="User", value="asdf", errtxt="Invalid User"})
等效于
- mycfe = {label="User", value="asdf", type="text", errtxt="Invalid User"}
cfe 类型
cfe 的 type 字段可以是以下之一
type | 描述 | 修饰符 |
---|---|---|
text | 文本字段,通常为单行文本 | |
longtext | 多行文本字段,例如 textarea | |
select | 选择列表 | value 是当前选定的项目 option 是选择选项的数组 |
multi | 多选列表 | value 是选定项目的数组 option 是选择选项的数组 |
list | 列表 | value 是字符串数组 |
boolean | true 或 false | |
raw | 原始二进制数据 | |
form | 构成表单的一组 cfe | value 是构成表单的 cfe 表(该表应该是名称索引的) option 是保存更改的命令名称(HTML 的按钮名称) descr 或 errtxt 可能包含保存尝试的结果 |
group | 构成匿名组的一组 cfe | value 是分组的 cfe 表(可用于将多个项目传递给视图)(该表应该是名称索引的) |
structure | 没有进一步类型信息的 Lua 表 | |
password | 用户不应可读的密码 | |
hidden | 隐藏字段,通常包含 ACF 使用的信息,用户不可见 |
模型定义对象集
模型负责从正在运行的系统进行写入和读取。 模型通常不需要知道它在特定 acf 模块的哪个部分下运行。 模型不一定必须像系统的其余部分一样是 lua "oop"。(模型可能不需要知道 "self")
由于模型可以选择暴露系统多少或少,因此基本数据集应在模型中定义。