PHP 项目开发规范
文档 1. 文件及文件目录规范
1.1 命名规范
2. 3. 文件名以全部小写的英文字母组成, 建议使用英文单词, 必要时使用复数; 多个单词之间以下划线隔开, 类文件建议以类的名字的小写命名;则这不仅仅是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.1变量命名
2.1.1 form域命名及URL参数名命名
考虑到PHP的数组下标(key)的应用是区分大小写的, 所以强制全部采用小写字母组成, 多词组成时可以用减号隔开.
2.1.2 变量命名
$ + 变量类型_变量命名 作为规则, 变量命名采用英文单词,多词组成时用下划线连接;变量类型不一定强制! 必须用小写. 例: $table_name
PHP
常用的类型:
String str 例: $str_username, $str_password,$pass
word Integer int 例: $int_id,$id
Float flt 例: $flt_money,$money
Double dbl 例: $dbl_pie,$pie
Boolean bln 例: $bln_isset
Array arr 例: $arr_data,$data
PHP 用于全局变量类型:
$Global 即 全局变量的配置变量 ,全局变量首字母用大写
PHP 常量首全部用大写 defined('IN_OLCMS')
2.2 变量的初始化
PHP本身并没有对初始化变量的名字. 所以我们能做的就是给一个未使用的赋一个空值.
例:
$arrData = array();
$intQuality = 0;
函数与类规范
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语句时,可以使用引用符 My
sql 的引用符为 `` MSSQL 的引用符为 [] 例 MYSQL: Select `userid` from `users` MSSQL: Select [userid] from [users] 注:mtyslq 里的关键字,用大小,分析