插件设计思路

插件机制的作用为更好的拓展系统功能。系统插件文件全部存放在plugin文件夹下。所有的插件项目页面均需注册在core_plugins数据表中。在管理端,插件会展示在扩张功能一栏菜单中,具体展现哪些插件,由超级管理员在系统菜单设置中设置。用户点击扩展功能中的某个插件时,系统自动展现该插件的入口设置菜单和管理菜单。以上两项均可在设计插件时设置。

为加快插件开发速度,本系统通过对接进云云平台开发了插件开发工具插件,可生成大部分代码,大大加快开发开发速度。

本框架插件的设计原则为小而精。插件内容尽量小,同时尽量优化。能调用插件功能的尽量调用。通过多插件的合作实现丰富功能。为方便插件直接的交流,系统在插件基类中内置plugin函数,通过该函数,可以直接调用其他插件提供的接口。Plugin函数接收三个参数,依次是插件名称,函数名称,参数数组。同时系统设计了插件数据类型机制,插件可以自定义数据类型,其他开发者在开发插件时可以直接选用。例如打印机插件,添加一个打印机数据类型,点餐插件可在门店数据表中添加一个字段,设置数据类型为打印机,系统生成插件时,直接生成相应代码,让使用者方便的选择打印机;打印订单时,只要调用打印机插件打印函数,传入用户选择的打印机ID和要打印的字符串即可。点餐插件只需专注点餐业务逻辑实现即可,其他功能直接调用其他插件接口实现。

为了防止插件利用了其他插件,单插件使用者未安装相应基础插件。插件开发工具内置插件依赖检测机制,站长安装插件时,先检测依赖插件是否安装,如果尚未安装,则提示站长先安装相应插件。例如,点餐插件使用了打印机插件的接口,当站长在安装点餐插件时,系统自动检测是否有安装打印机插件,如果尚未安装,则提示用户先安装打印机插件。

除接口调用外,插件之间的页面也可方便的相互跳转。系统内置的链接选择接口会将设置了可跳转链接的插件展示给操作员选择,选择插件后,modal页面跳转至插件链接选择页面,操作员可以方便的选择获取。从而在客户端引导用户跳转。开发者可以利用插件开发工具生成链接选择页面,也可根据模版自行设计。

为防止恶意插件影响其他插件。本系统插件基类中的数据库接口函数仅允许插件访问插件所属数据表(pdo函数在插件中已无法使用)。


返回

条结果""