浅析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 相关文章推荐
在Windows中安装Apache2和PHP4的权威指南
Oct 09 PHP
利用discuz实现PHP大文件上传应用实例代码
Nov 14 PHP
解析CI的AJAX分页 另类实现方法
Jun 27 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
了解PHP的返回引用和局部静态变量
Jun 04 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
Jun 24 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中webservice实现的简单架构方法及实例
2015/02/03 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
Python二元赋值实用技巧解析
2019/10/25 Python
python入门之基础语法学习笔记
2020/02/08 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
捷科时代的软件测试笔试题
2015/11/09 面试题
5.1手机促销活动
2014/01/17 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
代理人委托书
2014/09/16 职场文书
授权委托书协议书
2014/10/16 职场文书
幼儿园辞职书
2015/02/26 职场文书
2015年教学工作总结
2015/04/02 职场文书
远程教育学习心得体会
2016/01/23 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
js作用域及作用域链工作引擎
2022/07/07 Javascript