此PHP標準包含了如何去編寫高通用性代碼中那些標準元素(class,function ,ect.)的正確姿式!
在RFC 2119文檔中描述了關鍵字 「MUST」,「MUST NOT」,「SHALL」,「SHALL」,「SHALL NOT」,「SHOULD」,「SHOULD NOT」,「RECOMMENDED」,「MAY」,「OPTIONAL」。php
文件必須使用<?php
和<?=
標籤打頭。html
文件編碼必須使用UTF-8 無BOM頭的格式。git
文件可聲明類,方法,常量,或者引起「反作用」(輸出語句,改變PHP.ini的代碼,etc.),可是不該該同時包含着兩項。github
命名空間須要遵循自動加載規範:PSR-0,PSR-4。ui
類名必須爲StudlyCaps格式(首字母大寫的駝峯式)。編碼
常量必需要由大寫字母組成,單詞間使用下劃線(_)鏈接。spa
方法必需要使用camelCase格式(首字母小的的駝峯式)翻譯
PHP代碼必須寫在<?php ?>
或者簡短聲明<?=?>
(php.ini中short_open_tag爲On的狀況下,不推薦),不能使用其餘標籤。code
PHP代碼必須使用UTF-8無BOM頭的格式保存。htm
一個文件能夠聲明類,方法,常量等,也能夠執行那些"反作用"邏輯,可是不能同時作着兩件事!
「反作用」這個詞表明這個文件執行了跟此文件中聲明的類,方法,常量沒有直接聯繫的邏輯。
「反作用」包含:產生輸出,直接使用require
和include
包含文件,鏈接外部服務,修改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 { }
這裏的類指 Classes,interfaces,traits。這三種類型都要遵照如下規範
類常量必須由大寫字母組成,單詞間由下劃線組成。例:
<?php namespace Vendor\Model; class Foo { const VERSION = '1.0'; const DATE_APPROVED = '2012-06-01'; }
屬性名可使用$StudlyCaps(大寫字母開頭的駝峯式), $camelCase(小寫字母開頭的駝峯式), $under_score(下線線做爲分隔符的命名)。一旦使用了其中的某一項命名凡是,應該在必定的代碼內保持一致(庫,包,類,或者方法範圍內)。
方法必須被聲明爲camelCase(小寫字母打頭的駝峯似)。
注:本文非標準翻譯