浅析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.ini中文版
Oct 09 PHP
服务器端解压缩zip的脚本
Dec 22 PHP
PHP __autoload()方法真的影响性能吗?
Mar 30 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
php常用的安全过滤函数集锦
Oct 09 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
PHP SplObjectStorage使用实例
May 12 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
Aug 01 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
php获取ajax的headers方法与内容实例
Dec 27 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
JS 网站性能优化笔记
2011/05/24 PHP
yii框架源码分析之创建controller代码
2011/06/28 PHP
php抽奖小程序的实现代码
2013/06/18 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
微信小程序实现watch监听
2020/06/04 Javascript
对numpy中shape的深入理解
2018/06/15 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
师范生实习自我鉴定
2013/11/01 职场文书
实习鉴定评语
2014/01/19 职场文书
公务员检讨书
2014/11/01 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
Redis实现一个账号只能登录一个设备
2022/04/19 Redis
python语言中pandas字符串分割str.split()函数
2022/08/05 Python