浅析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 EOT定界符的使用详解
Sep 30 PHP
php学习笔记 类的声明与对象实例化
Jun 13 PHP
php在项目中寻找代码的坏味道(综艺命名)
Jul 19 PHP
如何判断php数组的维度
Jun 10 PHP
php三维数组去重(示例代码)
Nov 26 PHP
Codeigniter整合Tank Auth权限类库详解
Jun 12 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 PHP
Yii 框架使用数据库(databases)的方法示例
May 19 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 PHP
PHP http请求超时问题解决方案
Nov 13 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
星际争霸任务指南——人族
2020/03/04 星际争霸
在PHP中利用XML技术构造远程服务(上)
2006/10/09 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
2016/01/19 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
javascript new后的constructor属性
2010/08/05 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
网站域名和主机:Domain.com
2019/04/01 全球购物
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
体育教师自荐信范文
2013/12/16 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
出售房屋委托书范本
2014/09/24 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
学习与创新自我评价
2015/03/09 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
聊聊Python String型列表求最值的问题
2022/01/18 Python
PHP正则表达式之RCEService回溯
2022/04/11 PHP