【发布时间】:2010-07-29 10:35:30
【问题描述】:
我有一组 PHP 类,这些类可以传统上使用构造函数进行实例化。现在我想添加使用 YAML 配置文件实例化这些对象的功能。
以下是描述 Web 表单的配置文件示例:
title: Contact
fields:
message:
type: text
required: true
topic:
type: dropdown
options: ["HTML", "CSS", "PHP"]
这应该会产生一个带有两个对应 Field 对象的 Form 对象。换句话说,配置文件有时会描述包含其他对象的对象。
我不想简单地从 YAML 键/值对映射到 PHP 属性,因为我想在配置文件中允许速记语法。例如,我想缩写一些属性名称,并且还可以输入类似default: today 的内容,其中“今天”不被解释为字符串文字,而是转换为当前时间戳。
由于许多类都是子类,我正在寻找一种解决方案,它还可以让我以某种方式从超类“继承”配置逻辑。
我想避免修改现有的类,但如果它允许更简单的解决方案,我愿意这样做。 再三考虑,我真的不介意修改现有的类;我只对最佳解决方案感兴趣。
如何以这种方式最好地从配置文件创建对象?
【问题讨论】:
标签: php object configuration-files