Z-Blog 插件发布前自查清单:15 个容易翻车的点

· zblog · 阅读 10
摘要

插件在本地跑通不等于能发。下面这些点是实际踩过的坑,发布前过一遍。文件名与结构目录名与 plugin.xml 里的 id 必须一致,大小写也要一致include.php 第一行要有 if (!defined('ZC_IN_ZBP')) ex

插件在本地跑通不等于能发。下面这些点是实际踩过的坑,发布前过一遍。

文件名与结构

  • 目录名与 plugin.xml 里的 id 必须一致,大小写也要一致
  • include.php 第一行要有 if (!defined('ZC_IN_ZBP')) exit;
  • main.php 是后台设置页入口,没有也别留空文件,直接不建

钩子挂载

  • 前台钩子集中在 Include 类,后台钩子别误挂到前台,否则每次访问都多执行一遍
  • Filter_Plugin_Zbp_Load 里必须排除 zb_system 和 zb_users/plugin,否则后台直接崩
  • 同一个函数不要重复挂载

配置读写

  • 用 $zbp->Config('插件ID') 取值,不要直接读表
  • 写配置后调用 $zbp->SaveConfig('插件ID'),忘了这步改完刷新就丢
  • 配置项要有默认值,用户第一次启用时读不到会报 undefined

权限与安全

  • 后台页面必须有 CheckIsAdmin() 或权限校验
  • 所有来自请求的参数做转义,特别是拼进 SQL 的
  • CSRF token 要带上,表单提交不要裸奔

兼容性

  • PHP 版本声明写清楚,用了 8.0 语法就别标 7.4
  • 插件启用顺序敏感的话,在文档里写明依赖
  • 主题可能是任意一款,样式类名别写死

清单不长,但每一条都对应过一次真实的故障。尤其是 Zbp_Load 那条,能直接把后台打挂,恢复只能靠 FTP 删目录。