PSR 1 基礎編碼規範

2021-09-19 09:22:17 字數 1997 閱讀 5652

翻譯:薛粲

授權許可:cc by-nc 4.0

這份文件是《psr-1: basic coding standard》的非官方譯文。

這份標準文件闡述了那些需要考慮的標準的編寫**的原則,用於確保在共享 php **時技術上具備較高層次的互操作性。

php **必須使用長的<?php ?>標記或者短的用於輸出的<?= ?>標記;不得使用其它種類的標記。

php 源**必須使用不帶 bom 的 utf-8 編碼。

乙個檔案應該是:或者用於宣告新的符號(類、函式、常量等)的,同時並不導致其它***;或者用於執行一些會產生***的邏輯。但是,乙個檔案不應該既宣告新的符號,又執行產生***的邏輯。

短語「***」在這裡指的是執行那些不直接與宣告類、函式、常量等相關的邏輯,merely from including the file.

「***」包括但不限於:產生輸出、明確的使用requireinclude,連線外部服務、修改 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...