21番茄网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 21番茄网
查看: 1367|回复: 0

discuz插件参数读取与缓存控制

[复制链接]

705

主题

923

帖子

3047

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3047
发表于 2020-10-10 08:31:45 | 显示全部楼层 |阅读模式
      编写插件程序时,可能需要读取一些插件的信息,如果插件需要使用者进行配置,还需要读取使用者设置的参数值。Discuz! 允许插件程序使用数据库读取和缓存读取这两种方法获取插件信息和参数。Discuz! 的插件接口已经对插件信息进行了合理的缓存,使用缓存读取的方式,将比数据库读取速度更快,消耗的资源更是几乎可以忽略不计。缓存读取唯一的局限是需要插件使用插件接口提供的通用后台管理程序。如果使用自定义后台模块的方式,需要后台模块将参数存放到pluginvars 数据表中,才能被系统正常缓存。我们强烈推荐用户通过缓存读取插件信息和配置数据。
1 . 插件数据结构
      插件数据使用两个数据表存放,分别是plugins pluginvars
      前者用于存放插件信息:安装了多少个插件,就有多少条记录;
      后者用于存放插件的配置参数和配置值:所有已安装的插件总共有多少个配置项目,就有多少条记录。

      如果用户使用自行编写的插件后台管理模块进行插件参数配置,请尽量将配置项目按照pluginid 的对应关系,将参数存储于pluginvars 表中,这样系统就可以自动将增加的配置参数缓存起来,以供插件程序进行调用。

2. 插件参数读取
      了解了Discuz! 插件存储的数据结构后,用户可以在插件程序中根据需要选择合适的数据读取方式。由于数据库读取方式可以由数据结构推断而来,因此这里只介绍缓存读取的方式,这种方式是我们强烈推荐的插件数据读取方式。

      由于调用系统缓存统一通过“loadcache()”函数调用,并存放于 $_G['cache'] 中,因此“loadcache('plugin')”后插件的变量缓会存放于 $_G['cache']['plugin'] 中。
      嵌入点插件和以 plugin.php 为主脚本调用的插件无需加载此缓存,系统已自动加载了缓存。

      变量配置类型为“版块/*”的变量会保存在 $_G['cache']['forums'][fid]['plugin'] 中。

      变量配置类型为“用户组/*”的变量会保存在 $_G['cache']['usergroup_groupid']['plugin']$_G['group']['plugin'] 中。




上一篇:插件接口概述
下一篇:discuz编写插件的原则与注意事项
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|21番茄网 ( 粤ICP备10099428号 ) 奇远富

GMT+8, 2024-11-1 08:32 , Processed in 0.093366 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表