PHP 代码规范之PSR-1

1.概述

1. 必须使用<?php ?> 或是<?=?>这两种标签
2. PHP代码中必须使用UTF-8 without BOM 编码方式
3. 每个文件建议只用来声明(类class,函数function,常量constant等)或者只用来做一些辅助操作(输出信息,修改配置等),但一个文件不建议同时做这两件事
4. 命名空间Namespace和类class必须遵循"autoloading"PSR标准【PSR-0,PSR-4】
5. 类名(class)必须使用大驼峰命名法,如UserInfoController
6. 类中的常量必须只能用大写字母和来命名
7. 方法名(method)必须使用驼峰命名法,如getUserInfo

2.文件

2.1PHP 标签

PHP代码中必须使用<?php ?> 或是<?=?>这两种标签

2.2字符编码

PHP 代码 必须 使用 UTF-8 without BOM 编码

2.3文件的内容

规则建议一个文件只应该有一种行为,例如接口只做方法的定义,具体的功能在实现类中实现,建议不要把接口和实现写在同一文件中

  <?php
        class Fruit
            {
             public function __construct($type)
                {
                    $this->_type = $type;
                }
            }

            $fruit=new Fruit('pinguo');
    ?>

这样就是生命和使用混写的,规则不建议这么写,而知把生命和使用放在两个文件中
文件1:

  <?php
        class Fruit
            {
             public function __construct($type)
                {
                    $this->_type = $type;
                }
            }
    ?>

文件2:

<?php
     $fruit=new Fruit('pinguo');
?>

其他依次类推,次规则的目的是尽量使类和文件的功能单一化,尽量减小耦合,但是这样也会造成类和文件爆炸的问题,这就需要需要对具体的项目进行平衡和考量

3、命名空间 namespace 和类名 class name

命名空间 Namespace 和类 class 必须 遵循”autoloading” PSR标准: [PSR-0, PSR-4].

这意味着每个文件中只能有一个类 class,并且每个类 class 至少要有一级命名空间 namespace:即一个顶级的 vendor name

类名(class)必须 使用大驼峰命名法,如 StudlyCaps

PHP5.3 之后的 必须 使用正式的命名空间 namespace,例:

<?php
// PHP 5.3 and later:
namespace Vendor\Model;

class Foo
{
}

PHP5.2.x 和之前的版本 建议 用伪命名空间 Vendor_ 作为类名的前缀

扫描二维码关注公众号,回复: 2618294 查看本文章
<?php
// PHP 5.2.x 及之前:
class Vendor_Model_Foo
{
}

4、类的常量 constant,属性 property,方法 method

类 class 指所有的类 class,接口 interface 和特性 trait

4.1. 常量 constant

类中的常量 必须 只能用 大写字母 和 _ 来命名,例:
<?php

namespace Vendor\Model;

class Foo
{
    const VERSION = '1.0';
    const DATE_APPROVED = '2012-06-01';
}

猜你喜欢

转载自blog.51cto.com/13601957/2156215