浅析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、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
php allow_url_include的应用和解释
Apr 22 PHP
PHP循环语句笔记(foreach,list)
Nov 29 PHP
用php实现百度网盘图片直链的代码分享
Nov 01 PHP
PHP基于CURL进行POST数据上传实例
Nov 10 PHP
php开发工具有哪五款
Nov 09 PHP
一个简单安全的PHP验证码类、PHP验证码
Sep 24 PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 PHP
微信第三方登录(原生)demo【必看篇】
May 26 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
laravel 去掉index.php伪静态的操作方法
Oct 12 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
JavaScript 空位补零实现代码
2010/02/26 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
React简单介绍
2017/05/24 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
python对日志进行处理的实例代码
2018/10/06 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
pyqt5中动画的使用详解
2020/04/01 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
保密普查工作实施方案
2014/02/25 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL