浅析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 JSON格式数据交互实例代码详解
Jan 13 PHP
php中长文章分页显示实现代码
Sep 29 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
php实现上传图片生成缩略图示例
Apr 13 PHP
php使用glob函数快速查询指定目录文件的方法
Nov 15 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
PHP实现通用alert函数的方法
Mar 11 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
PHP 实现的将图片转换为TXT
Oct 21 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
PHP中Array相关函数简介
Jul 03 PHP
深入解析PHP中SESSION反序列化机制
Mar 01 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
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
javascript内存管理详细解析
2013/11/11 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
JS实现简单贪吃蛇小游戏
2020/10/28 Javascript
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
如何查找网页漏洞
2016/06/22 面试题
服装公司总经理岗位职责
2013/11/30 职场文书
教师考核材料
2014/05/21 职场文书
家长学校培训材料
2014/08/20 职场文书
实习感想范文
2015/08/10 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
React Hook用法示例详解(6个常见hook)
2021/04/28 Javascript
MySQL 计算连续登录天数
2022/05/11 MySQL