Discuz教程网

Discuz 插件开发标准化手册

[复制链接]
authicon 猪头 发表于 2010-10-22 08:54:27 | 显示全部楼层 |阅读模式
伴随着Discuz!的成长,在Discuz!快速发展的同时,Discuz!的插件也日益丰富,在这些插件中存在的不规范问题也是确实存在的,为了插件的规范化标准化进程的进行,也为了方便各位优秀的插件开发人员,更为了Discuz!程序插件的传承,我们特从现在开始进行插件开发标准化手册的编写,促进Discuz!论坛程序的插件开发!

第一章 插件代码书写规范

        第一节 注释标准

在Discuz!插件中我们建议开发人员尽量添加简洁明了的注释语言,以方便后继的插件修改者
以下的几种注释都是支持的,我们建议使用第一种
  1. <?php
  2. echo "这是第一种例子。\n"; // 本例是 C++ 语法的注释
  3. /* 本例采用多行的
  4. 注释方式 */
  5. echo "这是第两种例子。\n";
  6. echo "这是第三种例子。\n"; # 本例使用 UNIX Shell 语法注释
  7. ?>
复制代码
第二节 缩进标准

在Discuz!插件中我们建议开发人员尽量使用缩进来完成整个程序,虽然对于程序没有影响,但是缩进会使代码易于阅读,并且强烈建议使用Tab键来控制缩进的程度,并强制定义其距离是8个空白字符宽度
  1. <?php
  2. if($loadctrl && (!defined('CURSCRIPT') || CURSCRIPT != 'wap') && substr(PHP_OS, 0, 3) != 'WIN') {
  3. if($fp = @fopen('/proc/loadavg', 'r')) {
  4. list($loadaverage) = explode(' ', fread($fp, 6));//请注意缩进
  5. fclose($fp);
  6. if($loadaverage > $loadctrl) {
  7. header("HTTP/1.0 503 Service Unavailable");//请注意缩进
  8. include DISCUZ_ROOT.'./include/serverbusy.htm';
  9. exit();
  10. }//请注意缩进
  11. }//请注意缩进
  12. }
  13. ?>
复制代码

第三节 命名标准

良好的命名方式会给程序的开放带来很大的便利,同时不良的命名习惯也会给程序开发带来麻烦,所以在Discuz!插件中我们建议开发人员尽量使用规范的命名方式来完成整个程序,仍然以上例为演示,请注意其中变量名称,由于篇幅和时间的关系这里就不再展开叙述,这里给出一个PHP程序开发比较通用的命名习惯(这是一个编程标准文档)PHP 编程标准.总的来说,只有了解系统的程序员才能为系统取出最合适的名字,如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推想也能在意料之中,如果你发觉你的命名只有少量能和其对应事物相匹配的话, 最好还是重新设计吧
  1. <?php
  2. if($loadctrl && (!defined('CURSCRIPT') || CURSCRIPT != 'wap') && substr(PHP_OS, 0, 3) != 'WIN') {
  3. if($fp = @fopen('/proc/loadavg', 'r')) {
  4. list($loadaverage) = explode(' ', fread($fp, 6));
  5. fclose($fp);
  6. if($loadaverage > $loadctrl) {
  7. header("HTTP/1.0 503 Service Unavailable");
  8. include DISCUZ_ROOT.'./include/serverbusy.htm';
  9. exit();
  10. }
  11. }
  12. }
  13. ?>
复制代码

第四节 数据库设计标准

对于数据库的设计我们同样由于篇幅和时间的关系我们不再多说,请仔细查看Discuz!中的论坛版块表的设计和命名标准,同样的我们提供给您一份手册给您查看MySQL参考手册
cdb_forums论坛表
fidsmallint论坛ID
fupsmallint上级论坛ID
typeenum类型
namechar名称
statustinyint显示状态
displayordertinyint显示顺序
styleidsmallint风格ID
threadsmediumint主题数量
postsmediumint帖子数量
todaypostsmediumint今日发帖数量
lastpostchar最后发表
allowsmiliestinyint允许使用表情
allowhtmltinyint允许使用html
allowbbcodetinyint允许bbcode
allowimgcodetinyint允许img
allowanonymoustinyint允许匿名
allowsharetinyint允许共享到文集和supe
allowpostspecialtinyint允许发表特殊主题
alloweditrulestinyint允许版主修改论坛规则
recyclebintinyint是否启用回收站
modnewpoststinyint是否审核发帖
jammertinyint是否启用干扰码
disablewatermarktinyint是否图片附件增加水印
inheritedmodtinyint本论坛或分类版主的权力继承到下级论坛
autoclosesmallint自动关闭主题
forumcolumnstinyint增加论坛水平横排设置
threadcachestinyint主题缓存功能设置
allowpaytoauthortinyint允许直接向作者支付



上一篇:【Discuz X1.5】签名进度条
下一篇:【Discuz X1.5 】会员任免
authicon mjz 发表于 2011-5-9 22:00:02 | 显示全部楼层
顶的就是你
authicon lilac_yao 发表于 2011-5-12 06:59:49 | 显示全部楼层
偶的天啊!爱死你了
authicon D_hong 发表于 2011-5-15 14:59:42 | 显示全部楼层
继续来索要
authicon 风中徜徉 发表于 2011-5-17 18:59:32 | 显示全部楼层
不错,我喜欢
authicon 纤陌陌 发表于 2011-5-21 13:59:41 | 显示全部楼层
好东东下下来看看
authicon 陶衣小可 发表于 2011-5-22 23:59:41 | 显示全部楼层
好耶!功能强大啊
authicon shakesxia 发表于 2011-5-25 17:59:49 | 显示全部楼层
支持楼主,顶一下
authicon lilac_yao 发表于 2011-5-26 04:59:45 | 显示全部楼层
喜欢喜欢喜欢
authicon 夕梨二世 发表于 2011-6-17 03:01:49 | 显示全部楼层
这个还是不错的!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 16:15

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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