浅析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数据库连接
Oct 09 PHP
php&mysql 日期操作小记
Feb 27 PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 PHP
基于Zend的Config机制的应用分析
May 02 PHP
PHP 实现explort() 功能的详解
Jun 20 PHP
PHP 导出Excel示例分享
Aug 18 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
thinkphp5实现无限级分类
Feb 18 PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 PHP
解决laravel 表单提交-POST 异常的问题
Oct 15 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
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
php之对抗Web扫描器的脚本技巧
2008/10/01 PHP
php getsiteurl()函数
2009/09/05 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
javascript 必知必会之closure
2009/09/21 Javascript
最佳的addEvent事件绑定是怎样诞生的
2011/10/24 Javascript
document.createElement()用法
2013/03/13 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python连接DB2数据库
2016/08/27 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
Python贪心算法实例小结
2018/04/22 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
python__name__原理及用法详解
2019/11/02 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
Django自带的用户验证系统实现
2020/12/18 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
青年文明号服务承诺
2014/03/31 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
单位工作证明
2014/10/07 职场文书
单位个人查摆问题及整改措施
2014/10/28 职场文书
2016自主招生教师推荐信范文
2015/03/23 职场文书
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB