PHP符合PSR編程規範的實例

來源:文萃谷 1.1W

學習是要持之以恆的一件事,堅持就是勝利!以下本站小編整理的PHP符合PSR編程規範的.實例分享,希望對大家有所幫助,更多信息請關注應屆畢業生網!

PHP符合PSR編程規範的實例

  前言

關於開發標準這塊,可以説一直都是風格迥異,各家都有各家的玩法,民間更是個人玩個人的。目前我們國內比較出名的幾個框架(Yii,Laravel) 都已經支持Composer並且加入了PHP-FIG(php框架程序組)。

其中Composer的自動加載就支持PHP-FIG指定的PSR-0 和 PSR-4 規範來實現自動加載機制,並且Composer推薦使用PSR-4

  PHP-FIG

這是一個自願非正式的機構,但是就目前對我們的影響來看,可能都已經默認為一個公信組織了,的的確確制定了不少非常好的規範

目前從網站看,已經投票( )通過的有7個大的規範了

PSR-0 自動加載規範 ( 官方已廢棄,主要是php5.3以前沒有命名空間 )

PSR-1 編碼規範

PSR-2 編碼風格推薦

PSR-3 日誌接口

PSR-4 改進的自動加載規範( 官方推薦 ,規範更簡潔調理清晰了)

PSR-6 緩存接口

PSR-7 HTTP消息接口

  實例

?

namespace Standard; // 頂部命名空間

// 空一行

use TestTestClass;//use引入類

/**

* 類描述

*

* 類名必須大寫開頭駝峯.

*/

abstract class StandardExample // {}必須換行

{

/**

* 常量描述.

*

* @var string

*/

const THIS_IS_A_CONST = ''; // 常量全部大寫下劃線分割

/**

* 屬性描述.

*

* @var string

*/

public $nameTest = ''; // 屬性名稱建議開頭小寫駝峯

// 成員屬性必須添加public(不能省略), private, protected修飾符

/**

* 屬性描述.

*

* @var string

*/

private $_privateNameTest = ''; // 類私有成員屬性,【個人建議】下劃線小寫開頭駝峯

/**

* 構造函數.

*

* 構造函數描述

*

* @param string $value 形參名稱/描述

*/

public function __construct($value = '')// 成員方法必須添加public(不能省略), private, protected修飾符

{// {}必須換行

$this->nameTest = new TestClass();

// 鏈式操作

$this->nameTest->functionOne()

->functionTwo()

->functionThree();

// 一段代碼邏輯執行完畢 換行

// code...

}

/**

* 成員方法名稱.

*

* 成員方法描述

*

* @param string $value 形參名稱/描述

*

* @return 返回值類型 返回值描述

* 返回值類型:string,array,object,mixed(多種,不確定的),void(無返回值)

*/

public function testFunction($value = '')// 成員方法必須小寫開頭駝峯

{

// code...

}

/**

* 成員方法名稱.

*

* 成員方法描述

*

* @param string $value 形參名稱/描述

*

* @return 返回值類型 返回值描述

*/

private function _privateTestFunction($value = '')// 私有成員方法【個人建議】下劃線小寫開頭駝峯

{

// code...

}

/**

* 成員方法名稱.

*

* 成員方法描述

*

* @param string $value 形參名稱/描述

*

* @return 返回值類型 返回值描述

*/

public static function staticFunction($value = '')// static位於修飾符之後

{

// code...

}

/**

* 成員方法名稱.

*

* 成員方法描述

*

* @param string $value 形參名稱/描述

*

* @return 返回值類型 返回值描述

*/

abstract public function abstractFunction($value = ''); // abstract位於修飾符之前

/**

* 成員方法名稱.

*

* 成員方法描述

*

* @param string $value 形參名稱/描述

*

* @return 返回值類型 返回值描述

*/

final public function finalFunction($value = '')// final位於修飾符之前

{

// code...

}

/**

* 成員方法名稱.

*

* 成員方法描述

*

* @param string $valueOne 形參名稱/描述

* @param string $valueTwo 形參名稱/描述

* @param string $valueThree 形參名稱/描述

* @param string $valueFour 形參名稱/描述

* @param string $valueFive 形參名稱/描述

* @param string $valueSix 形參名稱/描述

*

* @return 返回值類型 返回值描述

*/

public function tooLangFunction(

$valueOne = '', // 變量命名可小寫開頭駝峯或者下劃線命名,個人那習慣,據説下劃線可讀性好

$valueTwo = '',

$valueThree = '',

$valueFour = '',

$valueFive = '',

$valueSix = '')// 參數過多換行

{

if ($valueOne === $valueTwo) {// 控制結構=>後加空格,同{一行,(右邊和)左邊不加空格

// code...

}

switch ($valueThree) {

case 'value':

// code...

break;

default:

// code...

break;

}

do {

// code...

} while ($valueFour <= 10);

while ($valueFive <= 10) {

// code...

}

for ($i=0; $i < $valueSix; $i++) {

// code...

}

}

}

熱門標籤