1. 程式人生 > >PHP 代碼規範之PSR-1

PHP 代碼規範之PSR-1

接口 行為 修改配置 必須 use php method his psr-4

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_ 作為類名的前綴

<?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‘;
}

4.2. 屬性

類的屬性命名可以遵循 大寫開頭的駝峰式 (StudlyCaps),都應該在一定的範圍內保持一致。這個範圍可以是整個團隊、整個包、整個類或整個方法。

4.3. 方法

方法名稱必須符合 camelCase() 式的小寫開頭駝峰命名規範。

引用自:

https://www.php-fig.org/psr/psr-1/

PHP 代碼規範之PSR-1