PHP 项目开发规范文档
1.文件及文件目录规范
1.1命名规范
文件名以全部小写的英文字母组成, 建议使用英文单词, 必要时使用复数; 多个单词之间以下划线隔开, 类文件建议以类的名字的小写命名;则这不仅仅是PHP文件,包括整个项目的文件.
例:
一般常见文件:
common.php, config.php login.php, user_info.htm, import_categories.php
类文件
class.accounts.php => Class Accounts {……};
1.2目录结构规范
目录的命名同文件名一样,英文字母,全部小写. 例:
/lib 常用PHP文件,库文件
/images 页面上使用的背景图或图标文件存在目录
/js 页面上使用的js文件
/languages 语言包文件
/templates 模板文件存在目录
/cache 站点数据存储目录, 比如像日志, 附件, 配置文件等,均可以创建子目录存放在这该目录下;
2.变量规范
2.1变量命名
2.1.1 form域命名及URL参数名命名
考虑到PHP的数组下标(key)的应用是区分大小写的, 所以强制全部采用小写字母组成, 多词组成时可以用减号隔开.
2.1.2 变量命名
$ + 变量类型_变量命名 作为规则, 变量命名采用英文单词,多词组成时用下划线连接;变量类型不一定强制! 必须用小写. 例: $table_name
PHP常用的类型:
String str 例: $str_username, $str_password,$password
Integer int 例: $int_id,$id
Float flt 例: $flt_money,$money
Double dbl 例: $dbl_pie,$pie
Boolean bln 例: $bln_isset
如何运行php项目
Array arr 例: $arr_data,$data
PHP 用于全局变量类型:
$Global 即 全局变量的配置变量 ,全局变量首字母用大写
PHP 常量首全部用大写 defined('IN_OLCMS')
2.2 变量的初始化
PHP本身并没有对初始化变量的名字. 所以我们能做的就是给一个未使用的赋一个空值.
例:
$arrData = array();
$intQuality = 0;
3.函数与类规范
3.1函数的命名
下划线连接的组合规则, 例 init(), list_category()
3.2类的命名规范
3.2.1 类的命名
类的命名也采用首字母大写的组合规则. 例 Class Users {…….}
3.2.1 类成员的命名
类的成员函数也采用小写的组合规则, 但为了避免函数名过长,可以灵活结合类的名字命名
例如 Users::delete($uid) 即用户类的成员函数用户删除函数
4.语法规范
表达式、流程控制语句中,关键字之间用一个空格隔开.且一致采用小写字母编写各类语句!
例如:以下空格以红背景突显
if ($blnStatus == true) { …..}
$arrData = array();
在zend studo 按下 ctr+shift+F 格式代码
5.注意事项
5.1借助get_magic_quotes_gpc()判断PHP环境中是否对外部变量进行自动转义,如若没有,则要手工进去转义,以防SQL注入.
5.2避免使用 include_once/require_once
5.3编码过程中需要缩进时,缩进采用键盘Tab键,不采用空格键, 缩进字符数设定为4个字符
5.4用于运算的变量,比如 $i, $k 等时,请注意使用完后unset($i,$k) 避免上下文的重复使用而并没有使用到初始值.
5.5必须对外部变量进行判断,比如类型,可允许的最大长度或最小值,尤其是与数据库结合应用时,要根据数据库的字段类型,长度来判断检查对外部变量的引用。避免出现SQL错误.
5.6操作文件或目录时,必须精准,建议使用is_dir, is_file, file_exists等函数结合检验,操作目标是否为预定目标!避免账户操作了不该操作的文件或目录
5.7向页面输出数据时,要注意是否需要HTML过滤,或URL转换,避免产生不必要的麻烦或界面上的影响!
5.8在字符串中引用变量,建议使用以下两种方法
$strSql = ‘select userid from ’.$tablename; //(最佳选择)
或
$strSql = “select userid from {$tablename}”;
或
$strSql = sprint(‘select userid from %s’, $tablename);
5.9编写sql语句时,可以使用引用符
Mysql 的引用符为 ``
MSSQL 的引用符为 []
例
MYSQL: Select `userid` from `users`
MSSQL: Select [userid] from [users]
注:mtyslq 里的关键字,用大小,分析日志方便
5.10错误与异常的处理
友好的错误或是错误日志记录是非常重要的。
5.11清除不必要的附件文件.
我们在设计功能时,经常使用了一些附件文件,比如产品图像,而往往在删除处理,尤其是批量删除时,会忽略了这些附带的文件.
5.12 我们只兼容PHP5,不再对PHP4进行支持,所以一些PHP4固有的函数或特性, 强制不再使用.
6.数据库的各类命名规范
由于MYSQL是不区分大小写的,所以我们强制所有的命名规则都是小写的英文字母, 比如 bers 为数据库db_ssp的用户表. 多词时以下划线隔开,这也是我们唯一建议使用下划线的地方,例:
bers_infos 用户信息
ades_types 商情类型表
7.注释 www.fancai
7.1 文件注释
/*
注明修改原因,谁改的,什么时间
Modified by: liyanyi- 2008/10/20
*/
7.2 函数或类的注释
结合使用zendstudio 5.5/6.x功能产生相应规范格式.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论