此时我的应用程序有许多类。我想通过定义一次关于字段/属性的信息来节省一堆工作,然后在其他任何地方使用它来插入,更新,删除甚至记录数据。
看一下这段代码:
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函数基本上是从4个参数中创建一个数组,索引为'column', 'type', 'label', 'options',这样我就可以在以后轻松地获得这些值。
我的第一个问题是,是否有可能有这样的东西:
protected $_options['visible] = array(0 => 'No', 1 => 'Yes');
这样我就不必把第四个参数传递给info_array函数,因为我可以使用"可见"索引访问这个数组问题是,我得到PHP错误时,尝试这个,不知道为什么…
我目前有get方法为我所有的属性,但我想知道是否有像下面这样的东西是可以的:
public function get($field) {
return $this->$field;
}
我希望能够使用索引从我的field_array获取该属性的值
我觉得你的建议听起来是个好计划。
魔法函数__get()
和__set()
是值得一看的,因为我认为你可以用它做出一些更好的抽象。
我可能会创建一个包含魔法方法的抽象类,并强制您在具体类中定义字段(您的$_options
数组)的元信息。
你的具体类只需要定义字段的元信息就可以了。