浅析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 相关文章推荐
phpinfo 系统查看参数函数代码
Jun 05 PHP
php学习笔记之 函数声明(二)
Jun 09 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
php输出1000以内质数(素数)示例
Feb 16 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
Jul 25 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
Nov 04 PHP
codeigniter中view通过循环显示数组数据的方法
Mar 20 PHP
php源码之将图片转化为data/base64数据流实例详解
Nov 27 PHP
php 调用百度sms来发送短信的实现示例
Nov 02 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
PHP $_SERVER详解
2009/01/16 PHP
PHP 操作文件的一些FAQ总结
2009/02/12 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
js控制div及网页相关属性的代码
2009/12/19 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
Python import自定义模块方法
2015/02/12 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
python实现最速下降法
2020/03/24 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
学校安全责任书
2014/04/14 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
体育教师个人工作总结
2015/02/09 职场文书
好员工观后感
2015/06/17 职场文书