配置文件
放在扩展根目录的 config.php 文件
<?php
return array(
'properties' => array( //扩展相关属性
'name' => '扩展名称', //显示给用户的扩展名
'version' => '1.0', //当前版本号
'description' => '描述', //简单说明扩展的功能
'changeLog' => array( //按时间升序说明每版本的更新内容
'1.0' => '更新说明'
)
),
'database' => array( //指定备份数据库
'default' => array() //配置文件连接池 => 未来扩展参数
),
'options' => 'main_demo::test', //选项界面,当点击扩展管理界面中的选项按钮时会调用main_demo对象的test方法
'update' => array( /*接受一个数组参数 { 可参看 of_base_extension_manager::setupExtension
'callMsgFun' : 输出消息(call_user_func支持的格式)
'nowVersion' : 升级时为旧版本号,新安装为null,
'newVersion' : 更新后版本,卸载为null,
'position' : 触发位置(before或after),
'state' : 安装状态,可修改false或字符串打印信息 以停止安装(before)或改变结果(after)
}*/
'before' => 'main_demo::updateBeforeOrAfter', //更新前调用
'after' => 'main_demo::updateBeforeOrAfter' //更新后调用, 卸载无此回调
),
'matches' => array(
'main_demo::test' => array( //当访问以下路径时会调用main_demo对象的test方法
'demo_ofControllers::viewTest', //匹配路径参考为调度的"类名::方法"
'of_ex::func', //of_ex在_of.extension.exclusive可配置, func为可变参数, 访问地址要附加参数&e=扩展键
//访问方式 "框架路径/index.php?c=of_ex&a=func&e=extKey"
'@demo_ofControllers.*@i' //以@开始的字符串,按正则处理
)
)
);
类文件
类文件语法如下,存储在/main/demo.php文件中,在编译时会自动添加头与尾,编译后生成的相对类名为'main_demo'
<?php
/**
* 描述 : 如果存在main方法,将在类文件对象初始化时调用
*/
function main(&$params) {
//这是一个对象,所以要用$this调用方法
}
/**
* 描述 : 配置文件中 'main_demo::test' 的入口文件
* 参数 :
* ¶ms : 可修改调度信息 {
* "class" : &调度类名,
* "action" : &调度方法,
* "check" : &校验参数
* }
*/
function test(&$params) {
//打印绑定参数
print_r($params);
//打印常量演示 更多方法
print_r($this->_getConst());
}
使用钩子
公有钩子
产品和扩展可以使用,可由产品和扩展触发
私有钩子
扩展内部使用的钩子,由扩展触发
内置钩子
核心内部钩子,有核心触发,避免扩展触发
发布扩展 访问 框架目录/index.php?c=of_base_extension_tool 来实现以下操作
扩展打包扩展界面管理需要整合的接口 of_base_extension_manager::dataManager
当需要发布扩展时,进入'扩展界面管理'中找到'扩展打包',这时底层会将数据库中所属扩展的表及相关数据备份,同时会封装扩展拥有的多语言包,作为扩展的安装升级数据
之后打开扩展文件夹,里面的内容就可以作为一个版本发布了
封装多语言扩展界面管理需要整合的接口 of_base_extension_manager::updateLanguage
之后打开扩展文件夹,里面的内容就可以作为一个版本发布了
当通过语言包工具编写完语言包后,进入'扩展界面管理'中找到'封装语言包',这时底层会更新扩展内部的语言包
扩展发布
可以直接将打包的扩展文件夹拷走,或访问 OF_URL/?c=of_base_extension_tool 对要发布的扩展进行加密加密的扩展在该扩展文件夹中/_info/encrypt文件夹内
使用扩展
扩展安装扩展界面管理需要整合的接口 of_base_extension_manager::setupExtension
将需要安装的扩展拷贝到程序的扩展目录中(程序根目录config.inc.php文件中_extension指定的位置要有读写权限),将扩展文件夹改成任意仅包含数字和字母的名称
之后,进入'扩展界面管理'中找到'安装扩展',等待提示安装完成后,便可使用了
扩展暂停与运行扩展界面管理需要整合的接口 of_base_extension_manager::changeState
之后,进入'扩展界面管理'中找到'安装扩展',等待提示安装完成后,便可使用了
进入'扩展界面管理'中找到'切换状态'
扩展备份与恢复扩展界面管理需要整合的接口 of_base_extension_manager::dataManager
进入'扩展界面管理'中找到'备份与恢复',按提示操作
扩展卸载扩展界面管理需要整合的接口 of_base_extension_manager::removeExtension
进入'扩展界面管理'中找到'卸载',按提示操作