浅析php与数据库代码开发规范


Posted in PHP onAugust 08, 2013

1、PHP中对各类变量内容的命名规范
 
(1)目录命名、文件命名、局部变量命名:
使用英文名词、动词,以下划线作为单词的分隔,所有字母均使用小写
目录:upload、templates、install、manage……
文件:index.php 、 register.php  、 config.php……
变量:$user , $pay_time , $pay_del_cont ……

(2)全局常量命名:
使用英文名词、动词,所有字母都使用大写,以下划线分隔每个单词
define( 'WEBSITE_NAME', '名称' );
define( 'WEBSITE_URL',  '地址' );
英文名词、动(3)数组变量命名:
词,以下划线作为分隔,所有字母均使用小写以array结束
$scope_array  = array();
$book_id_array = array();

(4)对象变量命名:
英文名词、动词,以下划线作为分隔,可以完整采用类名或是简化类名,但是必须明确知道是什么类,所有字母均使用小写,在变量后加上_obj

$user_obj   = new userAccount();
$pay_obj   = new payOrder();

(5)类的命名:
使用英文名词,以大写字母作为词的分隔,其他的字母均使用小写,名词的首个字母使用小写,不使用下划线

class userAccount{ ……}

(6)方法命名:
使用英文名词、动词,以下划线作为单词的分隔,所有字母均使用小写

  
class userAccount { 
 public $name_account=‘'; 
 function is_account_ok(){ 
  ... 
 } 
 function add_account(){ 
  ... 
 } 
}

关于对象属性的命名同理!

2、PHP中函数、符号、运算写作规范
 (1)if语句大括号{}规则:
将大括号放置在关键词后方
使用IF语句尽量使用大括号

  
if ( $condition ){ 
 ... 
}else{ 
 … 
}
 
(2)、switch规则
每个case块结束处必须加上break,而default总应该存在处理未知情况,例:
  
switch( $condition ){ 
 case 'user': 
  ... 
  break; 
 case 'type': 
  ... 
  break; 
 default: 
  ... 
  break; 
}
 
(3)、声明定位规则
声明代码块需要对齐,且初次使用变量时需要初始化
$tableName = '';
$databaseObject = '';
尽量不使用以下方式,例:
$tableName;
$accuntName = '';
$databaseObject = '';

html的form表单各个元素名称与数据库字段尽量保持一致。
不要采用缺省方法测试非零值,必须显式测试,例:
if ( $name_pay_into != false ){
 ...
}else{
 ...
}

*尽可能使用单引号''而不是双引号"",在需要加入变量或是写sql语句除外。
*php文件中尽可能不出现html语句,如果实在无法解决尽量少用,考虑到模板的兼容性,
html文件中尽可能避免出现php语句。
*通常每个方法只执行一项逻辑动作事务,所以对它们的命名应该清楚的说明它们是做什么的:
用email_error_check()代替error_check()。

请注意命名不要与系统方法冲突。

3、PHP中各类注释规范
/**
*  分页预处理函数
*  sql SQL语句
*  page 当前页数
*  limit 每页显示的数量
*  maxs 查询总数
*/
function limit($sql,$page='0',$limit=10,$maxs=''){ }

//用户检测
if( $check_obj->username( $username ) == true ){ … }

$user_name = $_GET[user];  //获取用户信息

4、数据库设计与操作规范
 
数据库规范
数据库名称应该由概述项目内容的小写英文名词组成,以下划线分隔单词,
避免跨平台时可能出现的大小写错误。

数据表名称应该由物件对象名称的小写英文名词组成(尽可能对应系统中的业务类名称),以下划线分隔单词,避免跨平台时可能出现的大小写错误。

数据表的字段应避免使用varchar、text等不定长的类型,时间信息的字段使用int类型存储。
查询数据连接多表时各资源应该使用全名称,即tableName.fieldName,而不是fieldName。
SQL语句应尽可能符合ansi92标准,避免使用特定数据库对SQL语言的扩充特性。

PHP 相关文章推荐
利用PHP和AJAX创建RSS聚合器的代码
Mar 13 PHP
php短域名转换为实际域名函数
Jan 17 PHP
PHP中数组合并的两种方法及区别介绍
Sep 14 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
Yii中的cookie的发送和读取
Jul 27 PHP
CI框架常用函数封装实例
Nov 21 PHP
php基于SQLite实现的分页功能示例
Jun 21 PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 PHP
PHP反射实际应用示例
Apr 03 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
Oct 20 PHP
PHP7移除的扩展和SAPI
Mar 09 PHP
九个你必须知道而且又很好用的php函数和特点
Aug 08 #PHP
怎样使用php与jquery设置和读取cookies
Aug 08 #PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 #PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 #PHP
php调用Google translate_tts api实现代码
Aug 07 #PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 #PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 #PHP
You might like
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
两个select多选模式的选项相互移动(示例代码)
2014/01/11 Javascript
jquery禁用右键示例
2014/04/28 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
Python内置函数之filter map reduce介绍
2014/11/30 Python
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
Python实战购物车项目的实现参考
2019/02/20 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
铁路个人事迹材料
2014/01/30 职场文书
文案策划求职信
2014/04/14 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
驻村工作简报
2015/07/20 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
python基础之模块的导入
2021/10/24 Python