包 | XS.utilf |
---|---|
继承关系 | abstract class XSDataSource |
子类 | XSCsvDataSource, XSDatabaseDataSource, XSJsonDataSource |
版本 | 1.0.0 |
源代码 | sdk/php/util/XSDataSource.class.php |
名称 | 描述 | 定义于 |
---|---|---|
__construct() | 构造函数 | XSDataSource |
getCharset() | 取得数据源的准确字符集 | XSDataSource |
getData() | 从数据源中提取一条数据 | XSDataSource |
instance() | 取得数据源对象实例 | XSDataSource |
名称 | 描述 | 定义于 |
---|---|---|
deinit() | 执行数据提取完毕后的清理工作 | XSDataSource |
getDataList() | 从数据源中提取若干条数据 | XSDataSource |
init() | 执行数据提取的准备工作 | XSDataSource |
public void __construct(mixed $type, $arg)
| ||
$type | mixed | 对象参数, 常为 SQL 语句或要导入的文件路径 |
$arg |
public function __construct($type, $arg)
{
$this->type = $type;
$this->arg = $arg;
$this->inCli = php_sapi_name() === 'cli';
$this->init();
}
构造函数
protected void deinit()
|
执行数据提取完毕后的清理工作 将自动在没有更多数据供提取时调用此函数, 请在具体的数据源重载此函数
public string getCharset()
| ||
{return} | string | 字符集名称 |
取得数据源的准确字符集 如不能确定字符集, 请直接返回 false
final public mixed getData()
| ||
{return} | mixed | 返回一条完整数据, 若无数据则返回 false |
final public function getData()
{
if ($this->dataPos === null || $this->dataPos === count($this->dataList)) {
$this->dataPos = 0;
$this->dataList = $this->getDataList();
if (!is_array($this->dataList) || count($this->dataList) === 0) {
$this->deinit();
$this->dataList = $this->dataPos = null;
return false;
}
}
$data = $this->dataList[$this->dataPos];
$this->dataPos++;
return $data;
}
从数据源中提取一条数据 实际使用时, 一般是循环调用此函数提取数据, 每条数据是由字段名为键的关联数组
while ($ds->getData() !== false) { ... }
protected array getDataList()
| ||
{return} | array |
从数据源中提取若干条数据 必须在数据源中定义此函数, 返回值必须是各条数据的数组
protected void init()
|
执行数据提取的准备工作 将自动在第一次提取数据前调用, 请在具体的数据源重载此函数
public static XSDataSource instance(string $type, mixed $arg=NULL)
| ||
$type | string | 数据源类型, 如: mysql://.., json, csv ... |
$arg | mixed | 建立对象的参数, 如 SQL 语句, JSON/CSV 文件 |
{return} | XSDataSource | 初始化完毕的数据源对象 |
public static function instance($type, $arg = null)
{
$type2 = ($pos = strpos($type, ':')) ? 'database' : $type;
$class = 'XS' . ucfirst(strtolower($type2)) . 'DataSource';
if (!class_exists($class)) {
throw new XSException("Undefined data source type: `$type2'");
}
return new $class($type, $arg);
}
取得数据源对象实例
包 | XS.utilf |
---|---|
继承关系 | abstract class XSDataSource |
子类 | XSCsvDataSource, XSDatabaseDataSource, XSJsonDataSource |
版本 | 1.0.0 |
源代码 | sdk/php/util/XSDataSource.class.php |
名称 | 描述 | 定义于 |
---|---|---|
__construct() | 构造函数 | XSDataSource |
getCharset() | 取得数据源的准确字符集 | XSDataSource |
getData() | 从数据源中提取一条数据 | XSDataSource |
instance() | 取得数据源对象实例 | XSDataSource |
名称 | 描述 | 定义于 |
---|---|---|
deinit() | 执行数据提取完毕后的清理工作 | XSDataSource |
getDataList() | 从数据源中提取若干条数据 | XSDataSource |
init() | 执行数据提取的准备工作 | XSDataSource |
public void __construct(mixed $type, $arg)
| ||
$type | mixed | 对象参数, 常为 SQL 语句或要导入的文件路径 |
$arg |
public function __construct($type, $arg)
{
$this->type = $type;
$this->arg = $arg;
$this->inCli = php_sapi_name() === 'cli';
$this->init();
}
构造函数
protected void deinit()
|
执行数据提取完毕后的清理工作 将自动在没有更多数据供提取时调用此函数, 请在具体的数据源重载此函数
public string getCharset()
| ||
{return} | string | 字符集名称 |
取得数据源的准确字符集 如不能确定字符集, 请直接返回 false
final public mixed getData()
| ||
{return} | mixed | 返回一条完整数据, 若无数据则返回 false |
final public function getData()
{
if ($this->dataPos === null || $this->dataPos === count($this->dataList)) {
$this->dataPos = 0;
$this->dataList = $this->getDataList();
if (!is_array($this->dataList) || count($this->dataList) === 0) {
$this->deinit();
$this->dataList = $this->dataPos = null;
return false;
}
}
$data = $this->dataList[$this->dataPos];
$this->dataPos++;
return $data;
}
从数据源中提取一条数据 实际使用时, 一般是循环调用此函数提取数据, 每条数据是由字段名为键的关联数组
while ($ds->getData() !== false) { ... }
protected array getDataList()
| ||
{return} | array |
从数据源中提取若干条数据 必须在数据源中定义此函数, 返回值必须是各条数据的数组
protected void init()
|
执行数据提取的准备工作 将自动在第一次提取数据前调用, 请在具体的数据源重载此函数
public static XSDataSource instance(string $type, mixed $arg=NULL)
| ||
$type | string | 数据源类型, 如: mysql://.., json, csv ... |
$arg | mixed | 建立对象的参数, 如 SQL 语句, JSON/CSV 文件 |
{return} | XSDataSource | 初始化完毕的数据源对象 |
public static function instance($type, $arg = null)
{
$type2 = ($pos = strpos($type, ':')) ? 'database' : $type;
$class = 'XS' . ucfirst(strtolower($type2)) . 'DataSource';
if (!class_exists($class)) {
throw new XSException("Undefined data source type: `$type2'");
}
return new $class($type, $arg);
}
取得数据源对象实例
留下一条评论吧!
请到论坛 登录 后刷新本页面!