配置文件
放在扩展根目录的 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
进入'扩展界面管理'中找到'卸载',按提示操作