$this->_getConst([string $key = null])
-
获取扩展类内置常量
-
$key指定获取的常量值,null返回所有常量,未找到返回null可以获取的常量 :
{ 'file' : 当前扩展文件路径, 等同__FILE__魔术常量 'eKey' : 当前扩展的扩展键 'eDbPre' : 当前扩展的数据库前缀 'eDir' : 当前扩展根目录的磁盘路径 'eUrl' : 当前扩展根目录的网络路径 'sDir' : 当前扩展存储目录的磁盘路径 'sUrl' : 当前扩展存储目录的网络路径 'matchUri' : 当前匹配的页面地址 }
-
$this->_getExUrl(string $a[, array $params = array()])
-
返回动态扩展独享页面地址,使用前要在配置文件matches下填写对应的匹配扩展页面
-
$a指定匹配a参数值必须在匹配页面中存在才有效
-
$params自定义get参数其中e默认内当前扩展键,也可以指定其它扩展键
//生成动态页面地址(一个仅由本扩展使用的地址) echo $this->_getExUrl('sd');
-
$this->_loadClass($className[, $isNew = true[, $eKey = null]])
-
加载扩展类
-
$className相对类名指定要调用类文件的相对类名
-
$isNew是否创建对象默认true=创建,false=返回完整类名
-
$eKey扩展键默认为当前扩展键,也可以指定其它扩展键
//加载扩展类演示 $this->_loadClass('main_demo') //加载并编译/main/demo.php类文件 ->callTest(); //调用callTest方法
-
$this->_loadFile(string|array $path[, $fileExtend = null])
-
以不同方式加载文件
-
$path加载文件路径以当前扩展根目录的'/xx/xxx'格式路径
-
$fileExtend强制文件扩展名,默认null自动识别扩展名php=include方式加载并返回php返回值; js=打印script标签,自带两个属性(eUrl:扩展路径, eKey:扩展键),并激活语言包; css=打印link标签; 其他=打印网络路径
//加载文件演示 $this->_loadFile('/main/loadFileTest.php'); //加载并返回代码值 $this->_loadFile('/main/loadFileTest.php', 'dir'); //打印网络路径 $this->_loadFile('/main/loadFileTest.php', 'css'); //指定css方式加载 $this->_loadFile(array( //匹配加载 '/main/loadFileTest.js', '/main/loadFileTest.php' ));
-
$this->_shareData($command = null)
-
操作共享数据(可以理解为简陋的数据库),以引用方式返回数据
-
$command操作命令null=共享方式读取数据, true=独享方式读取数据(加锁), false=(解锁) 将返回的引用数据设为null,会重新读取数据,否则读取缓存数据
//sharedData演示 $data = &$this->_shareData(); //读取原始数据 {'test' : '原始数据'} 假设值 $data['test'] = '演示数据'; //修改缓存数据 {'test' : '演示数据'} 本次会话中数据是共享的,但不允许保存 $this->_shareData(); //读取缓存数据 {'test' : '演示数据'} $data = null; //重置缓存数据 null $this->_shareData(); //读取原始数据 {'test' : '原始数据'} $data['test'] = '演示数据'; //修改缓存数据 {'test' : '演示数据'} $this->_shareData(true); //加锁原始数据 {'test' : '原始数据'} 只有加锁后才允许保存 $data['test'] = '测试数据'; //修改缓存数据 {'test' : '测试数据'} 本次会话中数据是共享的,并且允许保存 $temp = $this->_shareData(false); //解锁保存数据 {'test' : '测试数据'} echo $temp ? '成功' : '失败'; //缓存数据是数组 且 保存成功 ? true : false print_r($data); //打印数据 {'test' : '测试数据'}
-
&$this->_sql($sql, $key = 'default')
-
获取数据连接或执行sql
$sqlstring, null, true, false字符串 = 执行传入的sql, null = 开启事务, true = 提交事务, false = 回滚事务keystring多池区分符, 指定 框架配置['db'] 中的键或者 of_db::setPool 设置的键//执行sql演示 $ePrefix = $this->_getConst('eDbPre'); //当前扩展的数据库前缀 print_r($this->_sql("SELECT * FROM `{$ePrefix}cc`")); //使用扩展数据库 print_r($this->_sql('SELECT "sql演示" test')); //使用常规数据库
$this->_addHook(string $type, string|array $callback[, $params = null])
-
添加钩子
-
$type钩子类型私有钩子以'_'开头,内置钩子以'::'开头,其余为公有钩子
::halt 页面运行结束时触发 ::sqlBefore 执行sql前触发 ::sqlAfter 执行sql后触发 ::view 加载模板文件时触发
-
$callback触发时调用的方法支持'相对类名::方法名',['相对类名', '方法名'],[对象,'方法名']格式
-
$params自定义参数,由callback第二个参数接收,null=默认钩子不会出现两个相同的$callback,后一个$params会覆盖前一个
//钩子演示 $this->_addHook('ss', array($this, 'callbackPublicHookTest'), array('自定义公有参数')); //添加公有钩子 $this->_addHook('_s', array($this, 'callbackPrivateHookTest'), array('自定义私有钩子参数')); //添加私有钩子
-
$this->_fireHook(string $type[, $params = null])
-
触发钩子
-
$type钩子类型无法触发其它扩展的私有类型钩子
-
$params传递参数由触发方法的第一个参数接收,默认为null
::halt {'parse' : 是一个返回引用值的方法, 调用时传递一个参数("str"=返回响应的字符串,"obj"=将响应字符串解析并返回hParse对象)} ::sqlBefore {'sql' : &执行的sql语句, 'key' : 连接池} ::sqlAfter {'sql' : &执行的sql语句, 'result' : &返回的结果集, 'key' : 连接池} ::view {'tplDir' : &加载的模板路径, 'viewObj' : 传递到模板路径中的参数对象}
//钩子演示 $this->_fireHook('ss', array('触发时公有参数')); //触发公有钩子 $this->_fireHook('_s', array('触发时私有钩子参数')); //触发私有钩子
-
$this->_removeHook(string $type[, string|array $callback = null, [, $params = null]])
-
移除钩子
-
$type钩子类型无法移除其它扩展的钩子
-
$callback移除指定的回调钩子支持'相对类名::方法名',['相对类名', '方法名'],[对象,'方法名']格式
默认会移除当前扩展指定钩子的全部方法 -
$index引用数据结构为{'callbackParse' : 解析的移除回调}
//钩子演示 $this->_removeHook('ss'); //移除全部钩子 $this->_removeHook('_s', array($this, 'callbackPrivateHookTest')); //移除指定钩子
-