PHP 編碼規範

PSR 規範官網
PSR-2 編碼風格規範
PSR-1 基礎編碼規範
CodeIgniter 框架的編碼規範php

類和命名空間

每一個類都獨立爲一個文件,且命名空間至少有一個層次:頂級的組織名稱(vendor name)。html

類的命名必須遵循大寫開頭的駝峯命名規範。laravel

<?php
namespace Vendor\Model;

class Foo
{
    ...
}

類中的屬性、方法、常量

常量

類的常量中,全部字母都 必須 大寫,詞間如下劃線分隔。web

<?php
namespace Vendor\Model;

class Foo {
    const ENVIRONMENT = 'production';
    const MY_PI = 3.14;
}

屬性

PSR 規範中,對屬性的編碼規範沒有強制要求,但通常使用小寫字母開頭的駝峯規則。框架

<?php
namespace Vendor\Model

class Foo
{
    private $price;
    private $userName;
}

方法

跟屬性名同樣,使用小寫字母開頭的駝峯規則。ide

<?php
namespace Vendor\Model;

class Foo
{
    public function getPrice($id)
    {
        ...
    }
}

代碼

代碼須使用4個空格符而不是「Tab 鍵」進行縮進。svg

全部 關鍵字 必須 所有小寫。常量 true 、false 和 null 也 必須 所有小寫。函數

每行字符數儘可能保持在 80 個以內,最好很少於 120 個。codeigniter

每一個 namespace 命名空間聲明語句和 use 聲明語句塊後面,必須 插入一個空白行。ui

類和方法的開始花括號({) 必須 寫在函數聲明後自成一行,結束花括號(})也 必須 寫在函數主體後自成一行。

類的屬性和方法 必須 添加訪問修飾符(private、protected 以及 public),abstract 以及 final 必須 聲明在訪問修飾符以前,而 static 必須 聲明在訪問修飾符以後。

控制結構的關鍵字後 必須 要有一個空格符,而調用方法或函數時則 必定不可 有。

控制結構的開始花括號({) 必須 寫在聲明的同一行,而結束花括號(}) 必須 寫在主體後自成一行。

參數列表 能夠 分列成多行,這樣,包括第一個參數在內的每一個參數都 必須 單獨成行。

控制結構的開始左括號後和結束右括號前,都 必定不可 有空格符。

<?php
namespace Vendor\Package;

use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;

class Foo extends Bar implements FooInterface {
    public function sampleFunction($a, $b = null) {
        if ($a === $b) {
            bar();
        } elseif ($a > $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }

    final public static function bar() {
        // 方法的內容
    }


    public function aVeryLongMethodName( ClassTypeHint $arg1, &$arg2, array $arg3 = [] ) {
        // 方法的內容
    }
}
相關文章
相關標籤/搜索