浅析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中使用XML
Oct 09 PHP
如何对PHP程序中的常见漏洞进行攻击
Oct 09 PHP
文件上传的实现
Oct 09 PHP
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(1)
Oct 09 PHP
php三维数组去重(示例代码)
Nov 26 PHP
那些年我们错过的魔术方法(Magic Methods)
Jan 14 PHP
PHP程序漏洞产生的原因分析与防范方法说明
Mar 06 PHP
php修改文件上传限制方法汇总
Apr 07 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
php图片上传类 附调用方法
May 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
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
Jquery图形报表插件 jqplot简介及参数详解
2012/10/10 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
python 生成图形验证码的方法示例
2018/11/11 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
Coach澳大利亚官方网站:美国著名时尚奢侈品牌
2017/05/24 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
护士自我评价
2014/02/01 职场文书
工艺员岗位职责
2014/02/11 职场文书
报纸媒体创意广告词
2014/03/17 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
小学运动会宣传稿
2015/07/23 职场文书
初中同学会致辞
2015/08/01 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android