openlss / lib-datamodel
实现了一个从数据数组中可调用的对象,可以扩展以实现内联格式化。
0.0.2
2013-05-08 02:02 UTC
Requires
- php: >=5.3.2
- openlss/func-mda: ~0.0.1
This package is not auto-updated.
Last update: 2024-09-09 10:34:18 UTC
README
实现了一个从数据数组中可调用的对象,可以扩展以实现内联格式化。
真实姓名
真实姓名用户全部小写,空格用下划线代替。例如
$arr['my_real_name_here'] = 'foo';
所有数据数组成员都必须使用这种命名。
驼峰命名
当调用函数时通常使用驼峰命名。例如
echo $this->getMyRealNameHere();
这两个都在这个类中使用并生成,所以请确保它们被正确提供和格式化。
以下有一些辅助函数可以用来转换名称。
用法
use \LSS\DataModel; class MyDataModel extends DataModel { public function getFoo(){ return ucwords($this->data['foo']); } } $row = array('foo'=>'test','bar'=>'foo'); $obj = MyDataModel::_setup($row); var_dump($obj->getFoo()); //outputs 'Test' var_dump($obj->getBar()); //outputs 'foo' $obj->setFoo('test2'); var_dump($obj->getFoo()); //outputs 'Test2'
方法
$this DataModel::_setup($arr)
设置要使用的数据数组并实例化对象。注意:应该是单维关联数组,多维数组将被视为包含数组值的单维数组
$this DataModel::_setData($arr)
用于设置数据,与上面相同,但应用于现有对象
(array) DataModel::_getColumns($cols=array(),$flags=DataModel::KEYS_ASSOC)
用于检索特定的一组列 $cols 应该是一个包含列名(real_name)的数组。接受与 _getAll() 相同的标志
(array) DataModel::_getAll($flags=DataModel::KEYS_ASSOC)
返回一个与 _setData 中使用的类似数组,除了所有值都通过getter传递。标志可以是以下之一
- DataModel::KEYS_ASSOC 返回将是一个关联数组
- DataModel::KEYS_NUMERIC 返回将是一个数字数组。例如
$row = $obj->getAll();
(string) DataModel::_camelName($name,$prefix=null)
当传入 real_name 时返回驼峰命名。可以传入前缀以获取一个可用的函数名。例如
var_dump(DataModel::_camelName('my_name','get')); //outputs 'getMyName' var_dump(DataModel::_camelName('my_name'); //outputs 'myName';
(string) DataModel::_realName($name,$prefix=null)
用于从函数名中获取真实姓名。例如
var_dump(DataModel::_realName('getMyName','get')); //outputs 'my_name' var_dump(DataModel::_realName('myName')); //outputs 'my_name'