openlss/lib-datamodel

实现了一个从数据数组中可调用的对象,可以扩展以实现内联格式化。

0.0.2 2013-05-08 02:02 UTC

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'