浅析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 相关文章推荐
自动分页的不完整解决方案
Jan 12 PHP
Smarty+QUICKFORM小小演示
Feb 25 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
一步一步学习PHP(3) php 函数
Feb 15 PHP
php模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
PHP批量删除jQuery操作
Jul 23 PHP
PHP中的自动加载操作实现方法详解
Aug 06 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 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
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
JS实现php的伪分页
2008/05/25 PHP
PHP获取当前url的具体方法全面解析
2013/11/26 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
js实现一个简易计算器
2020/03/30 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
python 正则式 概述及常用字符
2009/05/07 Python
python3大文件解压和基本操作
2017/12/15 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
python执行精确的小数计算方法
2019/01/21 Python
Python制作动态字符图的实例
2019/01/27 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
python获取linux系统信息的三种方法
2020/10/14 Python
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
校班主任推荐信范文
2013/12/03 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书