资讯专栏INFORMATION COLUMN

我的php编码规范

RiverLi / 3422人阅读

摘要:为什么我们要培养自己的编码规范我们写代码的时候,一个好的编码规范,对我们来说能够起到很多意向不到的效果。至少会有一下的好处提高我们的编码效率。

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

我们写代码的时候,一个好的编码规范,对我们来说能够起到很多意向不到的效果。至少会有一下的好处:
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) 
{
    echo "young man";
}
else if($age > 30 && $age <= 60)
{
    echo "middle aged";
}
else
{
    echo "old man";
}

//下面这段代码高手我们一个问题,在if语句中,即使在可以不要花括号的情况下,花括号也是要写上的
if($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语法的具体使用细节,这里就不多说了,官网上说的再清楚不过了

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21130.html

相关文章

  • 看吧,这就是现代化 PHP 该有的样子

    摘要:这大概是我没有及早使用,或多数开发者流连现状造成的。它就是,一个的框架。行为驱动开发是来自测试驱动开发的开发过程。简单的说,它就是经常可能一天几次将小块代码整合进基础代码当中的行为。 showImg(https://segmentfault.com/img/remote/1460000013769815); 这是一篇社区协同翻译的文章,已完成翻译,更多信息请点击 协同翻译介绍 。 文章...

    Tangpj 评论0 收藏0
  • 这就是现代php该有的样子(二)

    摘要:所以,是帮助您创建您的项目的测试框架,单元测试。行为驱动开发是一个来自测试驱动开发的开发过程。这种语言被称为,是用来描述被测试的预期的行为。代码将被测试并且没有异常。这些标准提出了现代编码风格。 本文来自medium----原文链接; 欢迎作客我们的php&Laravel学习群:109256050 你需要开始使用测试 这是我每天对自己说的话。像很多人一样,我不会像TDD所建议的那样测试...

    fevin 评论0 收藏0
  • PHP 标准规范中文版发布

    摘要:本文经授权转自社区文档页面项目团队在定制编码规范,发现原本的已经有点年久失修。并且没有遵循中文文案排版指北规范在书写文档,而我们团队的文案统一遵循排版指北的标准,犹豫之下就自己的一个,并翻译了缓存接口还有大部分的消息接口规范。 本文经授权转自 PHPHub 社区 showImg(https://segmentfault.com/img/remote/1460000006780523);...

    CloudwiseAPM 评论0 收藏0
  • Travis CI 持续集成服务构建 Composer 类库简明教程

    摘要:创建帐号提供的是持续集成服务,简称。在这里引入的原因是我们的项目需要使用服务进行持续集成和测试,当然你也可以替换成别的单元测试工具。创建单元测试用例是单元测试类库家族中的一员,使用的一个主要目的是为我们的模块创建单元测试用例。 本文首发于 Travis CI 持续集成服务构建 Composer 类库简明教程,转载请注明出处! 在项目开发过程中,编码工作只是软件开发整个过程中的一小部分环...

    DoINsiSt 评论0 收藏0
  • atom和phpcs

    摘要:的编码规范虽然没有像那样集中,有这样的统一标准见我的这篇文章,但也是有规律可循的。最简单的莫过于直接使用,但是真的实在太弱了,所以目前业界比较流行的是使用,简称。在代码规范方面,没有所谓的个人喜好,而只有项目规范。所以目前以及都开始遵循。 php的编码规范虽然没有像javascript那样集中,有eslint这样的统一标准(见我的这篇文章),但也是有规律可循的。最简单的莫过于直接使用p...

    CntChen 评论0 收藏0

发表评论

0条评论

RiverLi

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<