翻譯:薛粲
授權許可:cc by-nc 4.0
這份文件是《psr-1: basic coding standard》的非官方譯文。
這份標準文件闡述了那些需要考慮的標準的編寫**的原則,用於確保在共享 php **時技術上具備較高層次的互操作性。
php **必須使用長的<?php ?>
標記或者短的用於輸出的<?= ?>
標記;不得使用其它種類的標記。
php 源**必須使用不帶 bom 的 utf-8 編碼。
乙個檔案應該是:或者用於宣告新的符號(類、函式、常量等)的,同時並不導致其它***;或者用於執行一些會產生***的邏輯。但是,乙個檔案不應該既宣告新的符號,又執行產生***的邏輯。
短語「***」在這裡指的是執行那些不直接與宣告類、函式、常量等相關的邏輯,merely from including the file.
「***」包括但不限於:產生輸出、明確的使用require
或include
,連線外部服務、修改 ini 設定、丟擲錯誤或異常、修改全域性或靜態變數以及讀寫檔案等。
下面的示例既包含了宣告又執行了產生***的邏輯,換句話說,這裡例子是應該避免的:
<?php
// ***:修改 ini 設定
ini_set('error_reporting', e_all);
// ***:載入檔案
include "file.php";
// ***:產生輸出
echo "\n";
// 宣告
function foo()
<?php
// 宣告
function foo()
// 條件宣告*不是****
if (! function_exists('bar'))
}
命名空間和類必須遵循乙份自動載入 psr 規範:psr-0 或 psr-4。
這意味著每個類在乙個只屬於它自己的檔案中,並且至少在一層命名空間——即最頂層的提供商名——之中。
類名必須宣告為studlycaps
的形式。
面向 php 5.3 或更高版本的**必須使用正式的命名空間。
例如:
<?php
// php 5.3 或更高版本:
namespace vendor\model;
class foo
面向 php 5.2 或更早版本的**應該使用以vendor_
開始的偽命名空間的慣例:
<?php
// php 5.2.x 或更早的版本:
class vendor_model_foo
術語「類」在這裡涵蓋了類、介面和 trait。
類常量必須被定義為全部由大寫字母、數字和下劃線組成,例如:
<?php
namespace vendor\model;
class foo
這份指南故意規避了對屬性名風格的建議,不論採用$studlycaps
、$camelcase
或者$under_score
均可。
不論使用了哪一種風格,它應該在乙個合理的範圍內具有一致性。這樣的範圍可以是開發商級別、包級別、類級別或者是方法級別的。
方法必須採用camelcase()
風格的命名。
PSR 1 基礎編碼規範
一定不可 must not 禁令,嚴令禁止 應該 should 強烈建議這樣做,但是不強求 不該 should not 強烈不建議這樣做,但是不強求 可以 may 和 可選 optional 選擇性高一點,在這個文件內,此詞語使用較少 php 檔案 必須 以 不帶 bom 的 utf 8 編碼 ph...
PHP工程規範 PSR 1
統一的 規範,有助於培養良好的編碼習慣,團隊成員間的 交流更加簡單。而對於php來說,psr無疑是目前最好的選擇。psr,即php standard recommendations,是目前最流行的php相關規範集合。那麼從這篇文章起,就會逐一簡述每個規範的主要內容,以便在工作中盡快的上手這些規範,融...
psr基礎編碼規範
php 檔案 必須 以 php 檔案 必須 以 不帶 bom 的 utf 8 編碼 php 中 應該 只定義類 函式 常量等宣告,或其他會產生 的操作 如 生成檔案輸出以及修改 ini 配置檔案等 二者只能選其一 命名空間以及類 必須 符合 psr 的自動載入規範 psr 0 已廢棄 或 psr 4...