伴随着Discuz!的成长,在Discuz!快速发展的同时,Discuz!的插件也日益丰富,在这些插件中存在的不规范问题也是确实存在的,为了插件的规范化标准化进程的进行,也为了方便各位优秀的插件开发人员,更为了Discuz!程序插件的传承,我们特从现在开始进行插件开发标准化手册的编写,促进Discuz!论坛程序的插件开发!
第一章 插件代码书写规范
第一节 注释标准
在Discuz!插件中我们建议开发人员尽量添加简洁明了的注释语言,以方便后继的插件修改者
以下的几种注释都是支持的,我们建议使用第一种 - <?php
- echo "这是第一种例子。\n"; // 本例是 C++ 语法的注释
- /* 本例采用多行的
- 注释方式 */
- echo "这是第两种例子。\n";
- echo "这是第三种例子。\n"; # 本例使用 UNIX Shell 语法注释
- ?>
复制代码 第二节 缩进标准
在Discuz!插件中我们建议开发人员尽量使用缩进来完成整个程序,虽然对于程序没有影响,但是缩进会使代码易于阅读,并且强烈建议使用Tab键来控制缩进的程度,并强制定义其距离是8个空白字符宽度 - <?php
- if($loadctrl && (!defined('CURSCRIPT') || CURSCRIPT != 'wap') && substr(PHP_OS, 0, 3) != 'WIN') {
- if($fp = @fopen('/proc/loadavg', 'r')) {
- list($loadaverage) = explode(' ', fread($fp, 6));//请注意缩进
- fclose($fp);
- if($loadaverage > $loadctrl) {
- header("HTTP/1.0 503 Service Unavailable");//请注意缩进
- include DISCUZ_ROOT.'./include/serverbusy.htm';
- exit();
- }//请注意缩进
- }//请注意缩进
- }
- ?>
复制代码
第三节 命名标准
良好的命名方式会给程序的开放带来很大的便利,同时不良的命名习惯也会给程序开发带来麻烦,所以在Discuz!插件中我们建议开发人员尽量使用规范的命名方式来完成整个程序,仍然以上例为演示,请注意其中变量名称,由于篇幅和时间的关系这里就不再展开叙述,这里给出一个PHP程序开发比较通用的命名习惯(这是一个编程标准文档)PHP 编程标准.总的来说,只有了解系统的程序员才能为系统取出最合适的名字,如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推想也能在意料之中,如果你发觉你的命名只有少量能和其对应事物相匹配的话, 最好还是重新设计吧 - <?php
- if($loadctrl && (!defined('CURSCRIPT') || CURSCRIPT != 'wap') && substr(PHP_OS, 0, 3) != 'WIN') {
- if($fp = @fopen('/proc/loadavg', 'r')) {
- list($loadaverage) = explode(' ', fread($fp, 6));
- fclose($fp);
- if($loadaverage > $loadctrl) {
- header("HTTP/1.0 503 Service Unavailable");
- include DISCUZ_ROOT.'./include/serverbusy.htm';
- exit();
- }
- }
- }
- ?>
复制代码
第四节 数据库设计标准
对于数据库的设计我们同样由于篇幅和时间的关系我们不再多说,请仔细查看Discuz!中的论坛版块表的设计和命名标准,同样的我们提供给您一份手册给您查看MySQL参考手册
cdb_forums | 论坛表 | fid | smallint | 论坛ID | fup | smallint | 上级论坛ID | type | enum | 类型 | name | char | 名称 | status | tinyint | 显示状态 | displayorder | tinyint | 显示顺序 | styleid | smallint | 风格ID | threads | mediumint | 主题数量 | posts | mediumint | 帖子数量 | todayposts | mediumint | 今日发帖数量 | lastpost | char | 最后发表 | allowsmilies | tinyint | 允许使用表情 | allowhtml | tinyint | 允许使用html | allowbbcode | tinyint | 允许bbcode | allowimgcode | tinyint | 允许img | allowanonymous | tinyint | 允许匿名 | allowshare | tinyint | 允许共享到文集和supe | allowpostspecial | tinyint | 允许发表特殊主题 | alloweditrules | tinyint | 允许版主修改论坛规则 | recyclebin | tinyint | 是否启用回收站 | modnewposts | tinyint | 是否审核发帖 | jammer | tinyint | 是否启用干扰码 | disablewatermark | tinyint | 是否图片附件增加水印 | inheritedmod | tinyint | 本论坛或分类版主的权力继承到下级论坛 | autoclose | smallint | 自动关闭主题 | forumcolumns | tinyint | 增加论坛水平横排设置 | threadcaches | tinyint | 主题缓存功能设置 | allowpaytoauthor | tinyint | 允许直接向作者支付 |
|