文章分页:
插件可为框架各应用扩展功能,利用框架所提供各类接口或钩子,为应用无缝添加各类显性或隐性功能。
目录结构
可通过框架后台插件管理设置参数,并在应用管理的插件选项中设置对应应用需调用那些插件,文件目录结构如下:
PLUGIN目录/插件名称/ | ||
├ | index.php | 入口脚本,插件调用时将首先调用此文件(必需) |
├ | info.php | 介绍文件,格式请参考自带样例(必需) |
├ | class.php | 包含检测(check)、安装(install)、卸载(uninstall)以及其他基本功能(如模版标签解析,页面钩子等)的脚本(必需) |
├ | config.php | 配置信息(参考 设置管理 栏目) |
├ | route.php | 自定义路由信息,格式与应用路由相同 |
├ | template | 目录,存放插件所需的模版文件 |
├ | module | 目录,存放插件所需的脚本文件 |
├ | config | 目录,存放配置文件描述,分语种,用于生成配置设置页面 |
└ | language | 目录,存放语言包文件 |
接口规范
插件核心类为插件目录下的 class.php 文件,类命名格式为 plugin_[插件名称],不可设置命名空间,并要符合如下接口规则:
interface interface_plugin {
public static function check(&$result);
public static function install();
public static function uninstall();
}
相关参数解释如下:
- check(&$result) - 检测当前环境是否符合插件要求,返回布尔结果,同时将回馈文本赋值给 $result;
- install() - 插件安装脚本;
- uninstall() - 插件卸载脚本。
所有插件类都必须扩展自此接口,否则无法执行。
通用方法
框架提供了一些插件常用方法,以供需要:
- regPluginRoute($idx) - 注册属于插件 $idx 的自定义路由;
- removePluginRoute($idx) - 移除属于插件 $idx 的自定义路由。
- addPluginLink($name, $path) - 在管理后台的插件栏目添加一项名为 $name 的功能链接,指向相对于框架根URL的地址 $path ;
- removePluginLink($path) - 移除对应 $path 地址的管理项链接;
- setPluginTemplate($idx, $name) - 针对框架管理后台的扩展,返回主模版(系统自带)和子模版(插件自带)的实例,其中 $idx 为插件名称,$name 为模版名称(为空则与 $idx 同值,模版统一存储在插件template子目录下);
- showPluginPage($idx, $page) - 在框架后台运行某一功能页面,$idx 为插件名称,$page 为需要执行的脚本名称。其中,插件目录下 template 目录和 module 目录需存在对应 $page 变量的 tpl 和 php 文件