保存有关类的表字段的信息

时间:2011-04-27 21:20:04

标签: php class field

我的应用程序此时有很多课程。我想通过定义一次有关字段/属性的信息来保存大量工作,然后在其他地方使用它来插入,更新,删除甚至记录数据。

看看这段代码:

protected $_visible_array = array(0 => 'No', 1 => 'Yes');

protected $_type_array = array(1 => 'Small', 2 => 'Medium', 3 => 'Large');

public function field_array() {
    $array['visible'] = info_array('cmp_visible', 'int', 'Visible', $_visible_array);
    $array['type'] = info_array('cmp_type', 'int', 'Type', $_type_array);
    $array['name'] = info_array('cmp_name', 'string', 'Name');
    $array['desc'] = info_array('cmp_desc', 'string', 'Description');
    return $array;
    }

我的info_array函数基本上使用索引'column','type','label','options'从4个参数创建一个数组,这样我以后就可以轻松获得这些值。

我遇到的第一个问题是,是否可能有类似的内容:

protected $_options['visible] = array(0 => 'No', 1 => 'Yes');

这样我就不必将第4个参数传递给info_array函数,因为我可以使用“visible”索引访问这个数组 问题是我在尝试这个时遇到PHP错误,不知道为什么......

我目前已经获得了所有属性的方法,但我想知道是否有类似下面的内容是可以的:

    public function get($field) {
    return $this->$field;
    }   

我希望能够使用我的field_array中的索引来获取该属性的值。

1 个答案:

答案 0 :(得分:0)

我认为你的建议听起来像是一个好计划。

值得看看魔术函数__get()__set(),因为我认为你可以用它做一些更好的抽象。

我可能会创建一个包含魔术方法的抽象类,并强制您在具体类中定义字段(您的$_options数组)的元信息。

然后,您的具体类只需要定义字段的元信息,然后就可以了。