浅析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 图片文件上传实现代码
Dec 29 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
Nov 19 PHP
PHP中如何使用session实现保存用户登录信息
Oct 20 PHP
PHP环境搭建的详细步骤
Jun 30 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
php利用gd库为图片添加水印
Nov 09 PHP
PHP magento后台无法登录问题解决方法
Nov 24 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
PHP中类与对象功能、用法实例解读
Mar 27 PHP
PHP7 整型处理机制修改
Mar 09 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
PHP6 先修班 JSON实例代码
2008/08/23 PHP
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
php上传大文件设置方法
2016/04/14 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
jquery实现metro效果示例代码
2013/09/06 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
Python内置函数 next的具体使用方法
2017/11/24 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
大学生实习思想汇报
2014/01/12 职场文书
客服专员岗位职责
2014/02/28 职场文书
初中军训感想300字
2014/03/05 职场文书
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
Java无向树分析 实现最小高度树
2022/04/09 Javascript
Mysql开启外网访问
2022/05/15 MySQL