PHP規範之PSR-1

基本編碼規範

此PHP標準包含了如何去編寫高通用性代碼中那些標準元素(class,function ,ect.)的正確姿式!
RFC 2119文檔中描述了關鍵字 「MUST」,「MUST NOT」,「SHALL」,「SHALL」,「SHALL NOT」,「SHOULD」,「SHOULD NOT」,「RECOMMENDED」,「MAY」,「OPTIONAL」。php

1.總覽

  • 文件必須使用<?php<?=標籤打頭。html

  • 文件編碼必須使用UTF-8 無BOM頭的格式。git

  • 文件可聲明類,方法,常量,或者引起「反作用」(輸出語句,改變PHP.ini的代碼,etc.),可是不該該同時包含着兩項。github

  • 命名空間須要遵循自動加載規範:PSR-0,PSR-4。ui

  • 類名必須爲StudlyCaps格式(首字母大寫的駝峯式)。編碼

  • 常量必需要由大寫字母組成,單詞間使用下劃線(_)鏈接。spa

  • 方法必需要使用camelCase格式(首字母小的的駝峯式)翻譯

文件

2.1 PHP標籤

PHP代碼必須寫在<?php ?>或者簡短聲明<?=?>(php.ini中short_open_tag爲On的狀況下,不推薦),不能使用其餘標籤。code

2.2編碼格式

PHP代碼必須使用UTF-8無BOM頭的格式保存。htm

2.3 反作用

一個文件能夠聲明類,方法,常量等,也能夠執行那些"反作用"邏輯,可是不能同時作着兩件事!
「反作用」這個詞表明這個文件執行了跟此文件中聲明的類,方法,常量沒有直接聯繫的邏輯。
「反作用」包含:產生輸出,直接使用requireinclude包含文件,鏈接外部服務,修改php.ini中的設置,引起錯誤或異常,修改全局或靜態變量,讀寫文件等等。
下面這個例子就是一個文件同時包含聲明和「反作用」

<?php
// 反作用:修改了php.ini的配置
ini_set('error_reporting', E_ALL);

// 反作用:引入文件
include "file.php";

// 反作用:產生輸出
echo "<html>\n";

// declaration
function foo()
{
    // function body
}

下面這個例子只包括聲明,沒有「反作用」

<?php
// declaration
function foo()
{
    // function body
}

// 條件語句不是「反作用」
if (! function_exists('bar')) {
    function bar()
    {
        // function body
    }
}

命名空間和類名

命名空間和類命名必須遵循一項自動加載規範:PSR-0或PSR-4。
這表示一個文件只能有一個類,而且這個類只有有一層命名空間:頂層空間爲開發商名
類名必須聲明爲StudlyCaps(首字母大寫的駝峯式)。
PHP5.3和以後的版本必須使用規範的命名空間。
例子:

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

class Foo
{
}

PHP5.2.x 和以前的版本應該使用由Vendor_+類名的形式聲明類,做爲虛擬命名空間。

<?php
// PHP 5.2.x and earlier:
class Vendor_Model_Foo
{
}

4 類常量,屬性,方法

這裏的類指 Classes,interfaces,traits。這三種類型都要遵照如下規範

4.1 常量

類常量必須由大寫字母組成,單詞間由下劃線組成。例:

<?php
namespace Vendor\Model;

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

4.2 屬性

屬性名可使用$StudlyCaps(大寫字母開頭的駝峯式), $camelCase(小寫字母開頭的駝峯式), $under_score(下線線做爲分隔符的命名)。一旦使用了其中的某一項命名凡是,應該在必定的代碼內保持一致(庫,包,類,或者方法範圍內)。

4.3 方法

方法必須被聲明爲camelCase(小寫字母打頭的駝峯似)。

其餘

注:本文非標準翻譯
圖片描述

相關文章
相關標籤/搜索