PSR規(guī)范制定了PHP代碼的相關(guān)標(biāo)準(zhǔn),以保證共享的PHP代碼間可以有較高閱讀性和技術(shù)互通性路狮。
本文中會(huì)用到的幾個(gè)規(guī)范等級(jí):
等級(jí) | 本文描述 |
---|---|
MUST,MUST NOT | 必須、絕不能 |
SHOULD、SHOULD NOT | 應(yīng)該贫堰、不該 |
MAY、OPTIONAL | 可以待牵,可選(本文出現(xiàn)較少) |
基礎(chǔ)編碼標(biāo)準(zhǔn)
1. 概覽
- PHP代碼文件必須使用<?php和<?=開(kāi)頭
- PHP必須使用不帶BOM的UTF-8編碼格式
- 一份PHP代碼文件中應(yīng)該要么只定義類(lèi)其屏、函數(shù)、常量等聲明洲敢,要么就只寫(xiě)會(huì)產(chǎn)生副作用的操作(如輸出和改變.ini文件中的配置)漫玄,兩者只能選其一
- 命名空間和類(lèi)必須符合自動(dòng)加載規(guī)范之一 PSR:[PSR-0, PSR-4]
- 類(lèi)名必須以StudlyCaps駝峰命名規(guī)則
- 類(lèi)中的常量必須使用大寫(xiě)茄蚯,單詞間用下劃線分隔
- 方法名必須以camelCase駝峰命名
2.文件
- PHP代碼必須使用長(zhǎng)標(biāo)簽<?php ?>或者<?= ?>短標(biāo)簽压彭,絕不能使用其他標(biāo)簽
- PHP必須且只能使用不帶BOM的UTF-8編碼格式
- 一份PHP代碼文件中應(yīng)該要么只定義類(lèi)、函數(shù)渗常、常量等聲明壮不,要么就只寫(xiě)會(huì)產(chǎn)生副作用的操作(如輸出和改變.ini文件中的配置),兩者只能選其一皱碘;
副作用表示:只通過(guò)引入的文件執(zhí)行相關(guān)邏輯询一,不直接聲明類(lèi)、函數(shù)和常量等癌椿;
副作用包括但不僅限于:1)生成輸出健蕊,如echo;2)引用外部文件require和include踢俄;3)修改ini文件配置缩功;4)讀取或者寫(xiě)入文件;5)修改全局或靜態(tài)變量都办;6)連接外部服務(wù)
以下是反例:聲明函數(shù)的同時(shí)執(zhí)行了包含副作用的操作
<?php
// side effect: change ini settings
ini_set('error_reporting', E_ALL);
// side effect: loads a file
include "file.php";
// side effect: generates output
echo "<html>\n";
// declaration
function foo()
{
// function body
}
以下是正例:只聲明了函數(shù)
<?php
// declaration
function foo()
{
// function body
}
// conditional declaration is *not* a side effect
if (! function_exists('bar')) {
function bar()
{
// function body
}
}
3.命名空間和類(lèi)