什么是扩展
-
这里的扩展也是OF的模块之一,在匹配的调度类上执行指定代码的功能,力求做到不改变原始数据,而改变原始逻辑
名词解释
- 扩展键 : 即扩展在当前系统的文件夹名,识别扩展及数据库归属均需要使用 扩展键仅能由字母与数字组合
- 类文件 : 符合php类语法规则,但不包含类头(class xxx {)和类尾(} ?>)的代码,所存储的文件叫类文件 仅有类文件可以被扩展解析器调用执行
- 扩展类 : 由类文件生成的对象叫扩展类
- 完整类名 : 类文件会被解析成一个完整的类,其类名以程序根目录开始,'_'为分隔符所组成的字符串,如 : data_extensions_main_demo
- 相对类名 : 类文件会被解析成一个完整的类,其类名以扩展根目录开始,'_'为分隔符所组成的字符串,如 : main_demo
- 钩子 : 类似于js的事件功能,在固定位置动态运行指定代码的功能,分为公有,私有及内部钩子
扩展目录结构
每个扩展主要分三部分
- _info 数据文件夹 由系统生成,里面包含安装数据,语言包及备份信息
- config.php 配置文件 包含脚本与路径映射数据和一些扩展信息
- 其它 扩展的主体程序及资源
注意事项
开发扩展时,几处特例要注意
- 下划线'_'为关键词 带有_的文件夹为系统文件夹,_为类所在文件夹的分隔符,_开头的方法为扩展内置方法
- 扩展的数据库表名都要使用前缀 前缀结构为 'e_扩展键_' 加上 定义的表名 $this->_getConst('eDbPre'); 获取扩展前缀
- 禁止修改主体数据库 凡是需要修改的数据,都要以关联的方式添加到扩展数据库中,防止卸载扩展原程序无法正确运行
- 避免修改过程数据 尽力寻求只读的方式对待请求,响应及过程中的数据,最大限度的防止扩展间冲突发生
- 合理的资源位置 应将扩展上传的资源及相关数据存储在扩展文件夹内,以提高扩展的可移植性