编写类验证器/维护适当的OOP

时间:2012-02-29 23:47:35

标签: php json oop validation

我有一个名为Component的类,它是许多其他类型组件的基类(例如,Text,Image ...),看起来像这样:

function __construct($data) {...}

abstract public function build();
...other methods, getters and setters

使用这些组件的方式如下:

  1. 用户上传设置以创建特定组件类型
  2. 清理组件设置并将其存储在DB
  3. 用户稍后会指定要使用哪些组件并发送相应的数据
  4. 目前,我通过最终用户发送给我的JSON对象获取每个组件的设置...所以我想做的是构建一个验证器/清理器来帮助我完成上面的第2部分。 / p>

    所有验证代码都已经通过其getter和setter存在于每个组件中,理想情况下我想做的是尝试使用用户提供的设置创建一个组件,看看是否有任何错误。

    唯一的问题是,每个组件都需要初始化数据 - 因为许多其他内部函数需要设置数据。

    我想过几种方法可以解决这个问题(见下文),但我不是其中任何一个的粉丝。所以我想了解如何解决这个问题。

    • 将设置分成各自的类,以便组件和验证器都可以使用它们而无需任何“数据”
    • 使用组件的虚拟数据

1 个答案:

答案 0 :(得分:1)

假设我明白你要做什么,这就是我可能会做的事情。

在您的对象上创建一个静态方法,该方法将验证一次调用中的所有组件设置。这个静态方法可以实例化一个虚拟对象(有点像你说的那样),然后使用已经内置到getter和setter中的验证。然后可以抛弃此对象,如果验证通过,静态方法可能会返回某种断言。如果只是返回一个布尔值是不够的,你可以让static方法返回一些排序错误数组。