编码规范
        
命名规范

1.1、主要的目录 control 里面是控制类 ,前台命名为something.php,则后台对应的是admin_+前台名称,名称应选有意义的英文单词,例如 前台词条 doc.php,后台词条管理对应的 admin_doc.php

1.2、model目录下个文件是功能模块,命名以 control名称+".class.php" ,例如control中doc.php对应是 doc.class.php
1.3、view是视图类,前台某功能命名为主,如login.htm,space.htm等,若不好命名,以"动词"+"control名称",例如浏览词条可命名为viewdoc.htm,后台命名统一加上admin_前缀,如admin_login.htm 、admin_index.htm等
1.4、lib目录下为基础类,命名用个类的名称为主,如hddb.class.php 、xml.class.php、json.class.php 等
1.5、文件名全部小写,类名,类的方法名全部小写。
1.6、变量名称应使用有意义的小些英文单词或组合命名,中间无任何分隔符,如$doc,$user,$category,$onlineip等等,勿使用拼音或者无意义的$temp,$data等来给变量命名
1.7、常量全部用大写字母,"HDwiki_有意义的英文单词或组合",如define('HDwiki_VERSION', '1.0.0');
1.8、一些列表数据采用“名词+list”,如词条列表数据的变量名使用$doclist,用户列表数据的变量使用$userlist等
1.9、函数或者类的方法命名用小写的英文单词或组合命名,如是组合请用下划线_分割,如 function parse(),function add_doc(),function get_user()等

开发规范
2.1、所有的url都是从 index.php? 开始的,第一个参数是调用的控制器,第二个参数是方法名字,第三个以后的都是方法的参数,例如index.php?doc-view-1 表示 调用/control/doc.php的doview方法,1是该方法的参数
2.2、删除无用的注释,包括无用的函数和方法。
2.3、if语句格式 :需要用大括号,即使只有一句话,例如if(a) echo 'a'; => if(a) { echo 'a'; }
2.4、缩进格式,采用TAB方式缩进
2.5、保证各方法需要有返回值时做有返回值处理,不需要时勿返回值,保证程序异常处理
2.6、杜绝在for循环中调用本可以一次调用的函数或方法如:
for($i=0,$con=count($order);$i<$con;$i++){
$this->db->query("update ".DB_TABLEPRE."friendlink set displayorder=".$i." where id=".$order[$i]);
}
2.7、不需要赋值的地方请勿赋值 如
function addlink($link){
$query = $this->db->query("INSERT INTO ".DB_TABLEPRE."friendlink (name,url,description) VALUES ('$link[name]','$link[url]','$link[description]')");
}
直接写成如下方式即可:
function addlink($link){
$this->db->query("INSERT INTO ".DB_TABLEPRE."friendlink (name,url,description) VALUES ('$link[name]','$link[url]','$link[description]')");
}
2.8、若中间数据可直接返回,请勿再次赋值如:
function get_pms($id){
$pms=$this->db->fetch_first("SELECT * table");
return $pms;
}直接改为:
function get_pms($id){
return $this->db->fetch_first("SELECT a. * ,b.username FROM ".DB_TABLEPRE."pms a,".DB_TABLEPRE."user b where a.toid=b.uid and a.id='".$id."'");
}
2.9、sql语句中:sql关键字大写、表名小写。sql语句坚决不用子查询。不用存储过程、不用外键、不用触发器等。记录数,采用 select count(*) from 表名 的方式
2.10、函数内的局部变量在函数的第一句开始处定义。
2.11、函数和函数之间空一行。
2.12、大括号格式
function get_lastdoc($docid,$doctime){;
}
2.13、写法 if($type=='') 改为 if(''==$type)

hdwiki 编码规范的更多相关文章

  1. Android的编码规范

    一.Android编码规范 1.学会使用string.xml文件 在我看来,当一个文本信息出现的次数大于一次的时候就必须要使用string.xml 比如一个保存按钮 , 不规范写法: <Butt ...

  2. PHP 高级编程(1/5) - 编码规范及文档编写

    PHP 高级程序设计学习笔记20140612 软件开发中的一个重要环节就是文档编写.他可以帮助未来的程序维护人员和使用者理解你在开发时的思路.也便于日后重新查看代码时不至于无从下手.文档还有一个重要的 ...

  3. 【原】JAVA SE编码规范

    /* * 编码规范: * 1.所有的命名遵循"见名知意"的原则 * 2.所有的命名不允许使用汉字或拼音 * 3.Java的工程命名建议使用小写,比如:oa.crm.cms... * ...

  4. 浅谈Android编码规范及命名规范

    前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...

  5. PHP编码规范PSR-2

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  6. Objective-C开发编码规范【转载】

    概要 Objective-C是一门面向对象的动态编程语言,主要用于编写iOS和Mac应用程序.关于Objective-C的编码规范,苹果和谷歌都已经有很好的总结: Apple Coding Guide ...

  7. 前端编码规范之CSS

    "字是门面书是屋",我们不会去手写代码,但是敲出来的代码要好看.有条理,这还必须得有一点约束~ 团队开发中,每个人的编码风格都不尽相同,有时候可能存在很大的差异,为了便于压缩组件对 ...

  8. 前端编码规范之JavaScript

    上次浅谈了下关于CSS的编码规范,大部分童鞋持赞同意见,仍存在一些童鞋不太理解这些规范的意义. 如果是个人或者小作坊开发,其实这些所谓的编码规范也没啥意思,因为大家写好的代码直接就给扔到网上去了,很少 ...

  9. Java Script 编码规范【转】

    Java Script 编码规范 以下文档大多来自: Google JavaScript 编码规范指南 Idiomatic 风格 参考规范 ECMAScript 5.1 注解版 EcmaScript ...

随机推荐

  1. Java学习——Java运算符

    位运算符 A = 0011 1100 B = 0000 1101 ----------------- A&b = 0000 1100 A | B = 0011 1101 A ^ B = 001 ...

  2. C#线程系列讲座(4):同步与死锁

    虽然线程可以在一定程度上提高程序运行的效率,但也会产生一些副作用.让我们先看看如下的代码:     class Increment     {         private int n = 0;   ...

  3. winner tree 胜者树

    在树形选择排序中,利用锦标赛思想建立的树称为胜者树. 1.每个非终端节点存储的是左右孩子节点中的优胜者. 2.通过减少比较次数,提高效率. 3.胜者树就是一颗特殊的线段树. 一.构建树 Procedu ...

  4. devexpress13学习系列(一)PDFViewer(1)

    使用这个组件,可以直接在winform里显示pdf文档,不需要另外装软件了. 有这么几个重要的属性: 1.DocumentFilePath:要读取的PDF的文件和路径. 2.CurrentPageNu ...

  5. 初始化 Gradle 工程目录(转自: 隔叶黄莺 Unmi Blog)

    最近重新在 Eclipse 中打开旧的 Maven 项目,总有些什么错误,备受折磨.期间试手了 Ant+Ivy, 现今试用了下 Gradle,感觉不错,它应该才是我真想要的,Maven 差不多该扔到一 ...

  6. Java基础(46):选择排序的Java封装(完整可运行)

    1 package lsg.ap.select; import java.util.Random; public class SelectSort { //选择排序 /** *@author: 梁山广 ...

  7. extjs 常见的小问题

    今天,小白就来总结下extjs的使用的时候的各种小问题或者说是小技巧.希望能够给各位刚接触extjs的朋友一点帮助. 1.当存在store的各种组件的store的autoload属性为false的时候 ...

  8. 在GitHub上建立个人主页的方法(转载)

    GitHub就不需要介绍了,不清楚可以百度一下.只说目前GitHub是最火的开源程序托管集中地了,连PHP的源码都在GitHub上面托管了(https://github.com/php ). GitH ...

  9. 关于mybatis 在C#.Net中批量增,删,改

    发现很久没有更新空间里的日志了,有时候实在忙没有时间记录,有时候又觉得自己整理的不够清晰,还是缓缓在记录吧. 下面直接进入正题 对于急需方法的阅读者  可以直接转至代码以下忽略 对于数据库进行操作的类 ...

  10. User Managerment 职责不能使用的问题

    1.此职责默认的是没有启用授权的(grant),需要在系统管理员职责下搜索到对应的菜单,进行grant 2.就算授权后,用户还是不能进行操作,需要进行以下设置: 1. Log into the app ...