编码规范
前言
标准化的重要性和好处
PHP编码规范与原则
文件编码及编辑器格式
编码
缩进
换行
代码标记
注释
书写规则
大括号{}、if和switch
运算符、小括号、空格、关键词和函数
函数定义
引号
数据库操作
命名原则
变量、函数名
类和接口名
JavaScript代码
常量
变量的初始化与逻辑检查
安全性
其他细节问题
包含调用
错误报告级别
其他注意要点
数据库设计
表和字段命名
字段结构
SQL语句
运算与检索
性能优化
模板及界面设计原则
标记及界面书写规则
模板标记
HTML
变量
缩进
CSS书写规则
JavaScript 书写规则
文件及目录
文件命名
普通程序
函数库和类库程序
模板源文件
空目录索引
编码规范
前言
如果您已经决定向加入微擎社区并贡献代码,请详细阅读以下规范,并严格遵守。本规范由编程原则组成,融合并提炼了开发人员长时间积累下来的成熟经验,意在帮助开发者养成良好一致的编程风格。如果有需要,本文档会不定期更新。
标准化的重要性和好处
当一个软件项目尝试着遵守公共一致的标准时,可以使参与项目的开发人员更容易了解项目中的代码、弄清程序的状况。使新的参与者可以很快的适应环境,防止部分参与者出于节省
时间的需要,自创一套风格并养成终生的习惯,导致其他人在阅读时浪费过多的时间和精力。而且在一致的环境下,也可以减少编码出错的机会。缺陷是由于每个人的标准不同,所以需要一段时间来适应和改变自己的编码风格,暂时性的降底了工作效率。从使项目长远健康的发展以及后期更高的团队工作效率来考虑暂时的工作效率降低是值得的,也是必须要经过的一个过程。标准不是项目成功的关键,但可以帮助我们在团队协作中有更高的效率并且更加顺利的完成既定的任务。
程序员可以了解任何代码,弄清程序的状况
新人可以很快的适应环境
防止新接触微擎的开发人员出于节省时间的需要,自创一套风格并养成终生的习惯
防止新接触PHP或微擎的开发人员一次次的犯同样的错误
在一致的环境下,开发人员们可以减少犯错的机会
程序员们有了一致的敌人
PHP编码规范与原则
文件编码及编辑器格式
请在开始编辑微擎代码之前调整你的编辑器设置。
本条规范同样适用于 PHPHTMLCSSJavaScript
编码
请调整您的编辑器文件编码为 UTF-8,并关闭 UTF-8 BOM1)的功能。切记请不要使用windows自带的记事本编辑项目文件。
注意:请确认你的编辑器不会有意或无意的保存文件为 UTF-8 BOM 格式, 否则可能造成微擎系统通信不正常。
缩进
每个缩进的单位约定是一个Tab(禁止设置为空格替代,Tab宽度应表示为4个空白字符宽度),需每个参与项目的开发人员在编辑器(UltraEditEditPlusZend Studio)中进行强制
设定,以防在编写代码时遗忘而造成格式上的不规范。
换行
微擎项目中使用Unix风格的换行符,即只有换行( LF \n )没有回车( CR \r ),请在你的编辑器内调整
代码标记
PHP程序需使用 <?php ?> 来界定 PHP 代码,在HTML页面中嵌入纯变量时,可以使用 <?php echo $variablename;?> 这样的形式。
注意:为了使代码规范化和标准化,微擎开发中禁止使用 <? ?>  <?=$variablename?> 这种速记形式。
注释
注释是对于那些容易忘记作用的代码添加简短的介绍性内容。请使用 C 样式的注释“/* */”和标准 C++ 注释“//”。
官方开发组请注意:每一个程序文件头部中,应放入相应HG控制字串 $sn$,以方便Mercurial提交时自动更新
例如:
/**
* 微擎接口初始化文件
* [WeEngine System] Copyright (c) 2013 WE7.CC
* $sn$
*/
开发留下的临时代码和调试代码必须添加注释,以免日后遗忘。所有临时性、调试性、试验性的代码,必须添加统一的注释标记“//debug”并后跟完整的注释信息,这样可以方便在程序发布和最终调试前批量检查程序中是否还存在有疑问的代码。
例如:
$num = 1;
$flag = TRUE;    //debug 这里不能确定是否需要对$flag进行赋值
if(empty($flag)) {
    //Statements
}
书写规则
大括号{}ifswitch
首括号与关键词同行,尾括号与关键字同列;
if 结构中,else elseif 与前后两个大括号同行,左右各一个空格。另外,即便 if 后只有一行语句,仍然需要加入大括号,以保证结构清晰;
switch 结构中,通常当一个 case 块处理后,将跳过之后的 case 块处理,因此大多数情况下需要添加 breakbreak 的位置视程序逻辑,与 case 同在一行,或新起一行均可,但同一 switch 体中,break 的位置格式应当保持一致。
以下是符合上述规范的例子:
if($condition)字符串转数组编码方式 {
    //Statements
} else {
    switch($str) {
        case 'abc':
            $result = 'abc';
            break;
        default:
            $result = 'unknown';
            break;
    }
}
运算符、小括号、空格、关键词和函数
每个运算符与两边参与运算的值或表达式中间要有一个空格;
左括号“( 应和函数关键词紧贴在一起,除此以外应当使用空格将“(”同前面内容分开;
右括号“)”除后面是“)”,其他一律用空格隔开它们;
除字符串中特意需要,一般情况下,在程序以及HTML中不出现两个连续的空格;
任何情况下,PHP程序中不能出现空白的带有TAB或空格的行,即:这类空白行应当不包含任何TAB或空格。同时,任何程序行尾也不能出现多余的TAB或空格;
每段较大的程序体,上、下应当加入空白行,两个程序块之间只使用1个空行,禁止使用多行。
程序块划分尽量合理,过大或者过小的分割都会影响他人对代码的阅读和理解。一般可以以较大函数定义、逻辑结构、功能结构来进行划分。少于15行的程序块,可不加上下空白行;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。