文档说明

XSDataSource

XS.utilf
继承关系 abstract class XSDataSource
子类 XSCsvDataSource, XSDatabaseDataSource, XSJsonDataSource
版本 1.0.0
源代码 sdk/php/util/XSDataSource.class.php
索引数据源抽象基类 此部分代码仅用于 indexer 工具程序

Protected 属性

隐去继承来的属性

名称类型描述定义于
arg XSDataSource
inCli XSDataSource
type XSDataSource

Public 方法

隐去继承来的方法

名称描述定义于
__construct() 构造函数 XSDataSource
getCharset() 取得数据源的准确字符集 XSDataSource
getData() 从数据源中提取一条数据 XSDataSource
instance() 取得数据源对象实例 XSDataSource

Protected 方法

隐去继承来的方法

名称描述定义于
deinit() 执行数据提取完毕后的清理工作 XSDataSource
getDataList() 从数据源中提取若干条数据 XSDataSource
init() 执行数据提取的准备工作 XSDataSource

属性明细

arg 属性
protected $arg;

inCli 属性
protected $inCli;

type 属性
protected $type;

方法明细

__construct() 方法
public void __construct(mixed $type, $arg)
$type mixed 对象参数, 常为 SQL 语句或要导入的文件路径
$arg
源码: sdk/php/util/XSDataSource.class.php#L30 (显示)
public function __construct($type$arg)
{
    
$this->type $type;
    
$this->arg $arg;
    
$this->inCli php_sapi_name() === 'cli';
    
$this->init();
}

构造函数

deinit() 方法
protected void deinit()
源码: sdk/php/util/XSDataSource.class.php#L104 (显示)
protected function deinit()
{
    
}

执行数据提取完毕后的清理工作 将自动在没有更多数据供提取时调用此函数, 请在具体的数据源重载此函数

getCharset() 方法
public string getCharset()
{return} string 字符集名称
源码: sdk/php/util/XSDataSource.class.php#L86 (显示)
public function getCharset()
{
    return 
false;
}

取得数据源的准确字符集 如不能确定字符集, 请直接返回 false

getData() 方法
final public mixed getData()
{return} mixed 返回一条完整数据, 若无数据则返回 false
源码: sdk/php/util/XSDataSource.class.php#L65 (显示)
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)
{
  ...
}

getDataList() 方法
protected array getDataList()
{return} array
源码: sdk/php/util/XSDataSource.class.php#L114 (显示)
protected function getDataList()
{
    return 
false;
}

从数据源中提取若干条数据 必须在数据源中定义此函数, 返回值必须是各条数据的数组

init() 方法
protected void init()
源码: sdk/php/util/XSDataSource.class.php#L95 (显示)
protected function init()
{
    
}

执行数据提取的准备工作 将自动在第一次提取数据前调用, 请在具体的数据源重载此函数

instance() 方法
public static XSDataSource instance(string $type, mixed $arg=NULL)
$type string 数据源类型, 如: mysql://.., json, csv ...
$arg mixed 建立对象的参数, 如 SQL 语句, JSON/CSV 文件
{return} XSDataSource 初始化完毕的数据源对象
源码: sdk/php/util/XSDataSource.class.php#L44 (显示)
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);
}

取得数据源对象实例

留下一条评论吧!

请到论坛 登录 后刷新本页面!