Skip to content

zhennong/app_know

Repository files navigation

#数据库规范

##数据库命名总规则

所有名称的字符范围为:a-z(小写字母), 0-9 和_(下划线)。不允许使用其他字符作为名称。
采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。
名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。

##数据表命名规范

不使用tab或tbl作为表前缀(无需重复说明)
表名以代表表内的内容的一个和多个名词组成,以下划线分隔,使用单数形式命名(CakePHP 是用复数形式命名表名的)。
使用表的内容分类作为表名的前缀:如,与用户信息相关的表使用前缀 user,与内容相关的信息使用前缀 content。
表的前缀以后,是表的具体内容的描述。如:用户登录信息的表名为:user_login,用户在论坛中的信息的表名为:user_bbs_info
一些作为多对多连接的表,可以使用两个表的前缀作为表名:
如:用户登录表 user_login,用户分组表 group_info,这两个表建立多对多关系的表名为:user_group_relation
当系统中有一些少量的,重复出现的值时,使用字典表来节约存储空间和优化查询。如地区、系统中用户类型的代号等。这类值不会在程序的运行期变化,但是需要存储在数据库中。

##数据表字段命名规范

字段不使用任何前缀(表名代表了一个名称空间,字段前面再加前缀显得罗嗦)
外键字段为当前表名加 _id,,比如:user_id,product_id
字典名也避免采用过于普遍过于简单的名称:例如,用户表中,用户名的字段为 username 比 name 更好。
布尔型的字段,以一些助动词开头,更加直接生动:如,用户是否有留言 has_message,用户是否通过检查 is_checked 等。
字段名为英文短语、形容词+名词或助动词+动词时态的形式表示,遵循“见名知意”的原则。

##php中对各类变量内容的命名规范

###(1)目录命名、文件命名、局部变量命名

使用英文名词、动词,以下划线作为单词的分隔,所有字母均使用小写。
目录:upload、template、install、manage……;
文件:index.php、register.php、config.php……;
变量:$user,$pay_time,$pay_del_cont…… ;

###(2)全局常量命名:

使用英文名词、动词,所有字母都使用大写,以下划线分隔每个单词
define('WEBSITE_NAME','地址');
define('WEBSITE_URL','网址');

###(3)数组变量命名:

英文名词、动词,以下划线为分隔,所有字母均使用小写以array结束
$a_array=array();
$b_array=array();

###(4)对象变量命名:

英文名词、动词、,以下划线为分隔,可以完整采用类名或是简化类名,但是必须明确知道是什么类,所有字母均使用小写,在变量后加上_obj
$user_obj=new userAccount();
$pay_obj=new payOrder();

###(5)类的命名

使用英文名词,以大写字母作为词的分隔,其他的字母均使用小写,名词的首个字母使用小写,不使用下划线
class userAccount{……}

#PHP编程规范

良好的代码书写习惯 + 良好的注释习惯 + PhpDocumentor = 程序说明书
一个团队,必须有整齐的代码书写习惯,如果再配上统一的IDE开发环境,详细的任务编码流程,完善的代码测试,那么整个团队的开发效率将会有很大的提高。

##第1章 命名规范

全局变量使用全大写形式,如$FILE_ROOT、$URL_ROOT。
一般变量使用小写字母命名,单词之间使用下划线分隔。
变量名字应该使用名词或者形容词+名词的方式。如$value,$new_value。
数组名字使用名词+Arr的方式,如$infoArr。

###1.1临时变量

不要将在循环中频繁使用的临时变量如$i,$j等用于其它用途。

###1.2 函数

函数采用小写字母命名,单词之间使用下划线分隔。
函数的命名建议使用动词+名词的方式,如get_user_img。
完成一组功能的函数放到一个文件中,存放函数的文件采用function_name.func.php命名。

###1.3 类

类使用英文的大小写来分隔单词,包括首个单词,所有单词的首字母大写,如PageManager;
在类中,方法放到属性定义前边、公用方法放到专用方法前边;
一般情况下,一个类对应到一个文件;
当一些类关系紧密时,可以存放在一个文件中;
存放类的文件采用ClassName.class.php方式命名。

###1.4 方法

方法使用英文的大小写来分隔单词,除首个单词外,其他单词的首字母大写,如getCurrentPage();
不要采用不常用的缩写,如where2go();
使用常用的缩写时,只大写首字母,如getHtml();
类中的私有方法和私有变量以下划线开头。

##第2章 版式规则

##2.1 语义分隔

各个函数、方法之间应该采用空行间隔;
同一个函数中联系紧密的语句之间可以不换行,其他情况需要换行。

##2.2 空格规则

###2.2.1 逻辑运算符前后必须加空格

正确 $a == $b;
错误 $a==$b;
$a ==$b;

加一减一运算符不能加空格。
正确 $a++; $a–;
错误 $a ++; $a –;

###2.2.2 多个参数分隔时必须加空格

正确 $g_pro , $g_user , g_show;
get_db_info($host, $user, $passwd);
错误 $g_pro,$g_user,$g_show;
get_db_info($host,$user,$passwd);

###2.2.3 语法关键字后必须加空格

例如:If, for , while, switch …..
正确 for ($i = 0; $i < 10; $i++)
错误 for($i = 0; $i < 10; $i++ )

##2.3 字符串和变量连接规则

字符串与变量连接使用’.'号时,必须在’.'前后加空格,使用”号时,必须在变量前后加”{}”。
正确 $my_name = ‘file_’ . $var1;
$my_name = ”file_{$var1}”;
错误 $my_name = ‘file_’.$var1;
$my_name = ”file_$var1”;

##2.4 圆括号规则

函数名后括号不需要加空格、语法关键字后的括号必须加空格。
正确 for ($i = 0; $i < 10; $i++)
strlen($my_name);
错误 for($i = 0; $i < 10; $i++ )
strlen ($my_name);

##2.5 花括号规则

花括号统一按以下方式写:
if ($a) {
$b = $a;
}

##2.6 数据库规范

在PHP中嵌入的SQL语句关键字全部采用大写;
数据值两边用单引号包括,并且应确保数据值中的单引号已经转义以防止SQL注入。
正确 $sql = ”SELECT uno,name FROM user_blog WHERE id = ‘$id’ LIMIT 1”;
错误 $sql = ”select uno,name from user_blog where id = $id ”;

数据表以destoon_作为前缀,例如destoon_mobile
字段名全为小写,以下划线分隔单词
建表时注明备注,方便理解字段用处
如需对数据表结构进行更改,需提交申请资料,统一由技术负责人更改。

##第3章 注释规则

##3.1 一般规则

不写不必要的注释;只有当代码不能很好地说明逻辑时,才用注释补充;
把注释看成程序的一部分,在编写/维护代码时同时编写/维护注释;

##3.2文件头注释

注释示范
/****
 *
 * 文 件 名 : lib.php
 * 功能描述 : 网站公用文件
 * 作    者 : jake
 * 日    期 : 2009-11-3
 *
 ****/

##3.3 函数/类方法注释示例

注释示范 
/****
* function getString(); 
 * 功能:calculate the short description of a DocBlock 
 * 返回值:return string always
 * 实例:$val = getString(123)
****/ 

##3.4二次开发注释

二次开发时,为了以后维护方便,尽量把注释写详细,尽量不要删除原有程序代码,需要时可以加上/**/注释掉。增加的文件加上文件头注释
增加代码注释示范:
//begin?modify?by?jake?20100707
代码段
//end?modify?by?jake?20100707
修改代码注释示范:
//begin?add?by?jake?20100707
代码段
//end?add?by?jake?20100707

About

No description, website, or topics provided.

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published