Rumah  >  Artikel  >  php教程  >  培养自己的php编码规范

培养自己的php编码规范

WBOY
WBOYasal
2016-06-06 19:42:391465semak imbas

为了提高工作效率,保证开发的有效性和合理性,并最大程度提高程序代码的可读性和可重复利用性,提高沟通效率,需呀一份代码编辑规范。

为什么我们要培养自己的编码规范?

我们写代码的时候,一个好的编码规范,对我们来说能够起到很多意向不到的效果。至少会有一下的好处:

1、提高我们的编码效率。整齐划一的代码方便我们进行复制粘贴嘛!
2、提高代码的可读性。
3、显示我们专业。别人看到了我们的代码,发现整个代码的书写流程都整齐划一,瞬间逼格就上去了!
4、方便团队协同工作。大家使用同一的规范,这样就消除了五花八分的书写方式,同一协调!

编码规范包含两大块,代码规范和注释规范

其实我们所写的php脚本,其实也就是由两大块组成的,即对代码的书写、对代码的注释!不同的框架,甚至不同的公司,对这方面都会有所不同,这里只是已将之言,仅仅是对自己的书写规范进行一个总结!希望能对其他的朋友以启示

1、代码的书写规范

文件夹的命名:

文件夹同一使用小写字母。如存放控制器的文件夹,直接命名为controller即可

文件的命名:

如果是类文件的话,那么文件的命名应该同类名称保持一致,统一使用大驼峰。如Session.class.php , 对应类名称为Session,
如果是普通的工具脚本,那么统一使用小驼峰,如common.php

类名称的命名:

类名称同一使用大驼峰,Cookie类

方法名的命名:

统一使用小驼峰,一般使用 动词 + 名次 的形式来描述该方法的功能,如sendMessage,发送短信。
在面向对象中,遵循同样的规则,但是个别地方有所区别:

public getUserName() protected _getTotalAmount() private _setBlanceAmount()

变量的命名规范:

关于变量,我们需要多说几点:
1、无论在面向对象还是非面向对象的语法中,变量统一使用小驼峰,如:$workYears。
但是在面向对象中又有所不同,public 、 protected 、 private ,protected或者private属性的时候,前面加上了 _ 作为区别

public $startPosition = 1; protected $_salaryAmount =1000; private $_sex = 'formale';

2、如果是常量的话,统一使用大写,中间使用下划线进行分割。

define('CURRENT_SCRIPT', 'index.php'); const TRANSACTION_TYPE = 'income';

3、全局变量,使用大驼峰,前缀加上 _ ,所有的单词首字母大写。因为知道一个变量的作用域是非常重要的,所以局部变量和全局变量应该很明显的进行分开!

$_System_Config;

$_Root_Path;

缩进符

关于编码的缩进符号,我们统一使用制表符缩进!也许有的人会问为什么不适用空格缩进的呢?
原因很简单,大部分的编辑器都支持制表符等于多少个空格,而使用空格就没得调了!

运算符号

所有的两元运算符号,都应该前后使用空格进行

$name = 'zero'; $age > 18 ? 'adult' : 'children';

常见的流程语句规划

我们约定,所有的流程语句的花括号都单独占据一行。理由:如果遇到较为复杂的业务逻辑,花括号会出现很多的嵌套,这样一来我们会混淆个个对应的花括号!

1、分支语句

if($age >= 18 && $age 30 && $age 60) { echo 'I am very old'; } switch($status) { case 'forbiden': echo 'login forbidden'; break; case 'normal': echo 'login in'; break; default: echo 'status is wrong' : break; }

2、循环语句

while($condition) { statesments......; } foreach($arrayList as $arrayKey => $arrayItem) { states......; } do { statements......; } while($condition) for($start; condition; changenumber) { statements......; }

2、注释的书写规范

很多人说好的代码是不需要注释的,其实,个人认为这是一句很扯淡的话(也可能他是对的,除非整个团队就他一个人,他包办了一切,不用看别人的代码)。

个人的观点是:多写注释,无论是对团队的其他人,还是对自己都是非常友好的!

根据个人的经验来看,注释至少有以下几个作用:

1、有利于提高代码的可读性,毕竟读你的注释要比读你的代码要容易的多!
2、有利于规划自己的代码布局!之所以这么说,是因为和代码注释的种类有关。“有利于代码的布局”,这种看着有点悬的事,光说是说不明白的,我们需要实实在在的例子做支撑!
3、由于我们的注释规范是按照phpdocumentor的要求,所以通过这个工具,还可以生成一份对代码的总体说明,相当于一个使用说明书!g

代码注释的种类

1、块注释
块注释,个人认为主要用在了三个地方。对php脚本的描述、对一个大的功能模块的描述、在一行之内不能写完注释的时候,也应该放在块注释中

2、行注释
行注释,个人认为他是配合块注释进行工作的!一般用于描述一个大的功能模块的具体细节!

实战的案例

关于phpdocumentor语法的具体使用细节,这里就不多说了,官网上说的再清楚不过了

培养自己的php编码规范

从上面的例子中我们可以看一下代码的布局大致是怎么回事,但是还需要我们在实践中慢慢摸索

下面附上一些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)程序中所有的类名唯一。

    e)抽象类应以Abstract开头。

    接口命名规则:

        i)采用和类相同的命名规则,但在其命名前加‘i'字符,表示接口。

        ii)尽量保持和实现它的类名一致。

3.数据库命名:在数据库相关命名中,一律不出现大写。

    a)表名均使用小写字母。

    b)表名使用同一的前缀且前缀不能为空。

    c)对于多个单词组成的表名,使用‘_'间隔。

    d)表字段命名规则。

            i)全部使用小写字母。

            ii)多个单词不用下划线分割。

            iii)给常用字段加上表名首字母做前缀。

            iv)避免使用关键字和保留字。

五、注释规范

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn