Skip to content

常见问题(应用开发) ​

本篇汇总 Z-BlogPHP 应用开发中的注意事项与常见问题,包括开发模式、CSRF 验证、命名规范与打包排除等实践要点。

注意事项速查表 ​

  1. 开发模式下不报错很重要:「启用开发模式」;
  2. 对于需要用户点链接或提交表单触发,进而对数据或文件产生影响的,除必要的用户权限验证外,应另外加入 CSRF Token 验证;「CSRF Token 验证」
  3. 自定义函数名、类名应以「应用 ID」开头或结尾,使用_分隔,建议放在开头;
  4. 自建表命名:plugin_appID_表名 或 theme_appID_表名,表前缀由系统自动附加;
  5. 自建模块命名:plugin_appID_模块名 或 theme_appID_模块名,这样管理起来更方便;
  6. 站内链接或路径须全部使用绝对地址:
    • PHP:$zbp->host、$zbp->path,也有专门的全局变量;
    • JS:bloghost;
  7. 对于服务器端发起的网络请求,请优先使用自带的Network;「Network 参考」
  8. 类似.gitignore,可以使用zbignore.txt对不需要打包进zba的文件进行排除;「zbignore.txt 参考」
  9. 理论上,「你」并没有在应用中自带jQuery必要;
  10. 编辑器相关的插件要考虑通用性;
  11. 1.7 起,要求主题模板内的HTML「应当在当前文件内闭合」;「不要跨文件闭合 HTML 标签」
  12. 在「公共头部」「公共尾部」模板内应各自放置{$header}或{$footer}标签;「示例 - 主入口模板 - 主题开发」
  13. 尽量「定制」字体图标而不是引入一整套;
  14. 要考虑用户站点上可能并没有你写死的数据调用;
  15. 除版权标识及注释外,不要在模板内写死各种和你有强关联的东西;
  16. 主题内「Z-Blog 版权标识」最速调用:Powered By {$zblogphphtml};
  17. CSS和JavaScript应尽可能采取外部引用而不是写在HTML内,style=""属性同理;
  18. 按新规范写代码:
    • 比如放弃 var 关键字,使用 let 或 const;
    • link:css、script:js 弃用非必要属性;
    • <link rel="stylesheet" href="style.css">;
    • <script src="script.js"></script>;
    • VSCode 直接红色波浪线提示的过时写法;
  19. 正则中使用.*?很不科学,请使用否定匹配,例如[^>]*或[^"]*;另外:
  20. logo,favicon,二维码等「替代性」文件不要走附件机制,尤其是不要捆绑编辑器上传;另外应利用zbignore.txt防止更新时被覆盖;参考「配置图片上传」「zbignore.txt 参考」
  21. 前台「站内链接」默认当前页打开;
    • 仅限「关于」「后台管理/登录」等少数情形可以例外;
  22. 在保存配置执行后,强烈建议用$zbp->SetHint('good'); Redirect('./main.php');而不是$zbp->ShowHint('good');;
  23. 有限度的使用 PHP 的 Herdoc 语法拼接 HTML;「参考:PHP: String 字符串 - Manual」

程序员的自我修养 ​

附注 - EditorConfig ​

zb_users/theme、zb_users/plugin 各放一份,文件名:.editorconfig;

ini
# editorconfig.org
root = true
[*]
charset = utf-8
# 空格 或 tab 缩进
indent_style = space
# 缩进数量
indent_size = 2
# 换行符
end_of_line = lf
# 自动剔除行尾空格
trim_trailing_whitespace = true
# 文件结尾插入空行
insert_final_newline = true