开发模式下不报错很重要:「启用开发模式」;
对于需要用户点链接或提交表单触发,进而对数据或文件产生影响的,除必要的用户权限验证外,应另外加入 CSRF Token 验证;「CSRF Token 验证」
自定义函数名、类名应以「应用 ID」开头或结尾,使用
_
分隔,建议放在开头;自建表命名:
plugin_appID_表名
或theme_appID_表名
,表前缀由系统自动附加;自建模块命名:
plugin_appID_模块名
或theme_appID_模块名
,这样管理起来更方便;站内链接或路径须全部使用绝对地址:
PHP:
$zbp->host
、$zbp->path
,也有专门的全局变量;JS:
bloghost
;对于服务器端发起的网络请求,请优先使用自带的
Network
;「Network 参考」类似
.gitignore
,可以使用zbignore.txt
对不需要打包进zba
的文件进行排除;「zbignore.txt 参考」理论上,「你」并没有在应用中自带
jQuery
必要;编辑器相关的插件要考虑通用性;
1.7 起,要求主题模板内的
HTML
「应当在当前文件内闭合」;「不要跨文件闭合 HTML 标签」在「公共头部」「公共尾部」模板内应各自放置
{$header}
或{$footer}
标签;「示例 - 主入口模板 - 主题开发」尽量「定制」字体图标而不是引入一整套;
要考虑用户站点上可能并没有你写死的数据调用;
除版权标识及注释外,不要在模板内写死各种和你有强关联的东西;
主题内「Z-Blog 版权标识」最速调用:
Powered By {$zblogphphtml}
;CSS
和JavaScript
应尽可能采取外部引用而不是写在HTML
内,style=""
属性同理;正则中使用
.*?
很不科学,请使用否定匹配,例如[^>]*
或[^"]*
;另外:'/abc/i'
——i
修饰符为忽略大小写;'/中文/u'
——u
修饰符用于匹配中文等;logo,favicon,二维码等「替代性」文件不要走附件机制,尤其是不要捆绑编辑器上传;另外应利用
zbignore.txt
防止更新时被覆盖;参考「配置图片上传」「zbignore.txt 参考」前台「站内链接」默认当前页打开;
仅限「关于」「后台管理/登录」等少数情形可以例外;
在保存配置执行后,强烈建议用
$zbp->SetHint('good'); Redirect('./main.php');
而不是$zbp->ShowHint('good');
;
程序员的自我修养
编辑器推荐「Visual Studio Code」「简体中文语言包」,其他编辑请确保有相应功能或插件;
重点推荐的插件及功能:
PHP 代码补全及检查:「PHP Intelephense」;
代码格式化:「Prettier - Code formatter」;
字面意思:「Format HTML in PHP」;
代码风格规范:「EditorConfig for VS Code」——参考下方「附注 - EditorConfig」;
英文单词拼写检查:「Code Spell Checker」;
次要:
将成对的括号使用颜色加以区分:「Bracket Pair Colorizer」 ← VSCode 已内置此功能;
快速生成 PHP 注释:「PHP DocBlocker」——「参考链接」;
替代默认的文件图标:「VSCode Great Icons」;
智能代码补全:「Tabnine AI Code Completion」——专业版收费;
GitHub 出品的代码补全:「https://copilot.github.com/」——需要申请资格;
有个名词叫「代码片段」——「参考链接」;
给开发人员的 字体:「JetBrains Mono」;