(转)PHP(其他语言类似)编码的规范性
为了提高工作效率,保证开发的有效性和合理性,并最大程度提高程序代码的可读性和可重复利用性,提高沟通效率,需要一份代码编辑规范。 一、文件标记: 1.所有php文件,其代码标记均采用完整php标签,不建议使用短标签(短标签容易和xml混淆,php从5.4开始默认不支持短标记)。 2.对于只有php的代码文件,建议省略结尾处的‘?>’。这是为了防止多余的空格或其他字符影响到代码。 二、文件和目录命名 1.程序文件名和目录名均采用有意义的英文命名,不使用拼音和无意义的字母,只允许出现字母、数字、下划线和中划线字 符,同时必须以‘.php’结尾(模板文件除外),多个词间使用驼峰命名法。 例://类统一采用:DemoTest.class.php //接口统一采用:DemoTest.interface.php //其他按照各自的方式:demoTest.{style}.php 三、文件目录结构 规范的目录结构有助于团队协作开发和后期维护。 ——app //独立的应用 ——class //单个的类文件,共用的类文件 ——conf/inc //配置文件或目录 ——data //数据文件或目录 ——doc //程序相关文档 ——htdocs //document_root ——images //所有图片文件存放路径 ——css //css文件 ——js //js文件 ——lib //共用类库 ——template //模板文件 ——tmp //临时文件目录 ——cache //缓存文件 ——session //SESSION文件 ——template_c //编译后的模板文件 ——other ——upload //上传文件 ——manage //后台管理文件目录 四、命名规范 1.变量命名:php中变量区分大小写,一个有效的变量名由数字、字母或下划线开头,后面跟任意数量的字母、数字、下划线。 a)程序整体以驼峰命名法,以小写字母开始,同时命名要有意义。(function displayName()) b)PHP全局变量键值两边都有‘_’,中间用驼峰命名法命名。($_GLOBAL['_beginTime_']) c)普通变量整体采用驼峰命名法,建议在变量前加表示类型的前缀。不确定类型的以大写字符开头。 d)函数名要尽量有意义,尽量缩写。 2.类及接口命名: a)以大写字母开头。 b)多个单词组成的变量名,单词之间不用间隔,各个单词首字母大写。 c)类名与类文件名保持一致。 d)程序中所有的类名唯一。 接口命名规则: i)采用和类相同的命名规则,但在其命名前加‘i’字符,表示接口。 ii)尽量保持和实现它的类名一致。 3.数据库命名:在数据库相关命名中,一律不出现大写。 a)表名均使用小写字母。 b)表名使用同一的前缀且前缀不能为空。 c)对于多个单词组成的表名,使用‘_’间隔。 d)表字段命名规则。 i)全部使用小写字母。 ii)多个单词不用下划线分割。 iii)给常用字段加上表名首字母做前缀。 iv)避免使用关键字和保留字。 五、注释规范 1.程序注释:写在代码前面而不是后面,单行代码按照习惯写在代码尾部;大段注释采用/**/的方式,通常为文件或函数的顶部,代码内部使用'//';注释不宜太多;代码注释应该描述为什么而不是做什么,给代码阅读者提供最主要的信息。 2.文件注释:文件注释一般放在文件的顶部,包括本程序的描述、作者、项目名称、文件名称、时间日期、版本信息、重要的使用说明(类的调用,注意事项等)。版本更改要修改版本号. 3.类和接口注释:按照一般的习惯,一个文件只包含一个类。 4.方法和函数注释:方法和函数的注释写在前面,通常需要表明信息的主要可见性、参数类型和返回值类型。 /** * 连接数据库 * @param string $dbhost 数据库服务器地址 * @param string $dbuser 数据库用户名 * @param string $dbpwd 数据库密码 */ 六、代码风格 1.缩进和空格:使用4个空格做为缩进,变量赋值时,等号两边留出空格。($url = '$_GET['url']';) 2. 语句断行:尽量保证程序语句一行即一句;尽量不要使一行的代码过长,80个字符以内;如果一行的代码太长,请使用类似于‘.=’方式断行连接;执行数据库 的sql语句操作时,尽量不要再函数内写sql语句,而先用变量定义sql语句,然后在执行操作的函数中调用定义的变量。 3.更好的习惯:在代码中使用下面列举的方法,可以使代码更优雅。 1):多使用php中已经存在的常量,而不要自己定义。 例://换行 echo $msg."\r\n"; echo $msg,PHP_EOL; php中PHP_EOL是一个预定义常量,表示一行结束,随着所使用系统不同,使用PHP_EOL代码可移植性更高 2):单引号的效率高于双引号,但二者在使用上有区别,学会使用printf函数。 例://echo echo '每个'.$scholl.'大约有'.floor($avg).'个学生'; //printf $format = '每个%s大于有$d个学生'; printf($format,$school,$avg); 3) :详细的注释 4):不要 滥用语法糖,语法糖就是语言中的潜规则,即不具备普遍代表性的语法。案例: string,字符串型,在变量前面加str $strMessage = 'Hello World!' ; integer,整数型变量,在前面加上'int' //下面一个变量为整数 $intCount = 34343; float,浮点型, 在前面加上'fl' //下面一个变量为浮点型 $flSave = 0.8 ; // 8折 boolean,布尔型 在前面加上'bool' //下面一个变量为布尔型 $boolEncode = true ; array,数组型, 在变量前面加arr, 一维数组使用名词单数,多维数组使用词复数 //下面一个变量为一维数组 $arrData = array ( 1 , 2 , 3 , 4 , 5 ,6) ; //下面一个变量为多维数组 $arrMembers = array ( 'id' => 123456 , 'username' => 'ABC' , 'email' => 'abc#abc.com' ) ; object,对象型,在变量前面加obj 代表一个确切的类型的对象 $objstr = New string(); resource,资源型,在前面加上'rs' $rsConn = mysql_connect ( 'localhost' , 'user' , 'pw' ) ; $rsHandle = fopen( $strFilename );三种编程命名规则(匈牙利法,小驼峰法,大驼峰法) 1. 匈牙利命名: 开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写。 For example: $Iprice = 123.0; 'i'代表类型缩写 2. 小驼峰式:(little camel-case) 第一个单词首字母小写,后面其他单词首字母大写。 For example: $strPrice = 234.0; 2. 大驼峰式:(big camel-case) 每个单词的第一个字母都大写; For example:$StrPrice = 324234.0; 驼峰命名法(Camel-Case)是电脑程式编写时的一套命名规则(惯例)。程 序员们为了自己的代码能更容易的在同行之间交流,所以多才取统一的可读性比较好的命名方式。例如:有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以 如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。这样的命名规则不适合所有程序员阅读,而利用驼峰命名 法来表示,可以增加程序可读性。驼 峰命名法就是当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单字以小写字母开始;第二个单字的首字母大写或每一个单字的首 字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。驼峰命名法(Camel-Case)一词来自 Perl 语言中普遍使用的大小写混合格式,而 Larry Wall 等人所著的畅销书《Programming Perl》(O'Reilly 出版)的封面图片正是一匹骆驼。驼峰命名法的命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。(转)PHP(其他语言类似)编码的规范性的更多相关文章
- Go语言安全编码规范-翻译(分享转发)
Go语言安全编码规范-翻译 本文翻译原文由:blood_zer0.Lingfighting完成 如果翻译的有问题:联系我(Lzero2012).匆忙翻译肯定会有很多错误,欢迎大家一起讨论Go语言安全能 ...
- 如何使用 PHP 语言来编码和解码 JSON 对象
PHP JSON 本章节我们将为大家介绍如何使用 PHP 语言来编码和解码 JSON 对象. 环境配置 在 php5.2.0 及以上版本已经内置 JSON 扩展. JSON 函数 函数 描述 json ...
- 一道C语言安全编码题目
1.前言 最近在网上看到一道C语言题目,用C语言实现一个函数,给定一个int类型的整数,函数输出逆序的整数,例如输入123,则输出字符串"321",,输入-123,则输出字符串&q ...
- c#基础语言编程-编码
字符编码是计算机技术的基础理论,其字符编码有ASCII码.UTF-8.还有就是GB2312,当然这是在中国常用的. 1.ASCII码 在计算机内部所有的信息都是以二进制字符进行存储.用每个二进制位中的 ...
- C语言字符编码处理
一.字符编码识别 1.简介 uchardet是一个开源的用于文本编码检测的C语言库,其功能模块是用C++实现的,通过一定数量的字符样本独立的分析出文本的编码,当前已经支持UTF-8/GB13080/B ...
- php 多语言(UTF-8编码)导出Excel、CSV乱码解决办法之导出UTF-8编码的Excel、CSV
新项目,大概情况是这样的:可能存在多国.不同语种使用者,比喻有中文.繁体中文,韩文.日本等等,开发时选择了UTF-8编码,开发顺利,没有问题.昨天做了一个csv导出功能,导出的东西完全乱了: 设置mb ...
- 002-notepad++语言,编码,字体,背景色
一.基本操作 1.1.语言 Setting→Perferences→语言选择 1.2.默认编码 编码→使用UTF-8 无BOM编码 1.3.字体 “设置”-->“语言格式设置”-->“字体 ...
- C语言:GB2312编码和GBK编码,将中文存储到计算机
计算机是一种改变世界的发明,很快就从美国传到了全球各地,得到了所有国家的认可,成为了一种不可替代的工具.计算机在广泛流行的过程中遇到的一个棘手问题就是字符编码,计算机是美国人发明的,它使用的是 ASC ...
- C语言:字符编码
C语言是 70 年代的产物,那个时候只有 ASCII,各个国家的字符编码都还未成熟,所以C语言不可能从底层支持 GB2312.GBK.Big5.Shift-JIS 等国家编码,也不可能支持 Unico ...
随机推荐
- inotify-tools+rsync实时同步文件安装和配置
服务器A:论坛的主服务器,运行DZ X2论坛程序;服务器B:论坛从服务器,需要把X2的图片附件和MySQL数据实时从A主服务器实时同步到B服务器.MySQL同步设置会在下一编中说到.以下是用于实时同步 ...
- 【转】.NET MVC控制器分离到类库的方法
在.ASP.NET MVC的开发中,我们创建完项目之后,ASP.NET MVC是已Model-Controller-View的形式存在的,在创建项目自动生成的内容上Model我们很容易分离成类库,所以 ...
- pgpool中的配置参数的定义
/* * configuration parameters */typedef struct { char *listen_addresses; /* hostnames/ ...
- 【摘录】JAVA内存管理-评估垃圾收集性能的工具
第七章 评估垃圾收集性能的工具 各种各样的诊断和监视工具可以用来评估垃圾收集性能.本章简要概述他们中的几个.可以通过第九章中的“Tools and Troubleshooting”链接获得更多的信息. ...
- 使用css选择器来定位元素
public void CSS(){ driver.get(Constant.baidu_url); //绝对路径 // driver.findElement(By.cssSelector(" ...
- 速学JavaScript!
什么是JavaScript? JavaScript是一种轻量级的脚本语言,也是一种嵌入式语言,是一种对象模型语言,简称JS:JavaScript的核心语法部分(语言本身)很精简,只包括两个部分: 基本 ...
- prettier 与 eslint 对比
Linters have two categories of rules: 代码修正一般有两种规则: Formatting rules: eg: max-len, no-mixed-spaces-an ...
- 01 C#基础
第一天 .net平台(中国移动互联网平台): .net框架(信号塔): CLR(公共语言运行时) .Net类 库 我们使用的语言是——C# 2.解决方案项目与类的关系: 解决方案:公司 项目:部门 类 ...
- 转载:CentOS查看本机公网IP命令
icanhazip.com 使你在任何地方知道你的公网IP地址 icanhazip.com是一个网址,你在浏览器中输入这个网址,你就能得到你的公网IP地址了. 我在Linux下一般使用curl ica ...
- vi 编辑器的日常使用
命令行模式: 光标管理 text 屏幕 行 单词 gg 跳转到文档头部 H 跳转到屏幕首行 ^ 或 数字0 跳转到行首 w 向前 G 跳转到文档尾部 M 跳转到屏幕中行 $ 跳转到行尾 b 向后 ...