人人人妻人人人妻人人人,99精品国产综合久久久久五月天 ,欧美白人最猛性XXXXX,日韩AV无码免费播放

News新聞

業(yè)界新聞動(dòng)態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁(yè)      樂(lè)道系統(tǒng)FAQ      PHP符合PSR編程規(guī)范的實(shí)例分享

PHP符合PSR編程規(guī)范的實(shí)例分享

標(biāo)簽: 發(fā)布日期:2016-12-21 00:00:00 255

前言

關(guān)于開(kāi)發(fā)標(biāo)準(zhǔn)這塊,可以說(shuō)一直都是風(fēng)格迥異,各家都有各家的玩法,民間更是個(gè)人玩?zhèn)€人的。目前我們國(guó)內(nèi)比較出名的幾個(gè)框架(Yii,Laravel) 都已經(jīng)支持Composer并且加入了PHP-FIG(php框架程序組)。

其中Composer的自動(dòng)加載就支持PHP-FIG指定的PSR-0 和 PSR-4 規(guī)范來(lái)實(shí)現(xiàn)自動(dòng)加載機(jī)制,并且Composer推薦使用PSR-4

PHP-FIG

這是一個(gè)自愿非正式的機(jī)構(gòu),但是就目前對(duì)我們的影響來(lái)看,可能都已經(jīng)默認(rèn)為一個(gè)公信組織了,的的確確制定了不少非常好的規(guī)范

目前從官網(wǎng)看,已經(jīng)投票( http://www.php-fig.org/psr/  )通過(guò)的有7個(gè)大的規(guī)范了

  1. PSR-0 自動(dòng)加載規(guī)范 ( 官方已廢棄,主要是php5.3以前沒(méi)有命名空間 )
  2. PSR-1 編碼規(guī)范
  3. PSR-2 編碼風(fēng)格推薦
  4. PSR-3 日志接口
  5. PSR-4 改進(jìn)的自動(dòng)加載規(guī)范( 官方推薦 ,規(guī)范更簡(jiǎn)潔調(diào)理清晰了)
  6. PSR-6 緩存接口
  7. PSR-7 HTTP消息接口

實(shí)例

<?php
namespace Standard; // 頂部命名空間
// 空一行
use Test\TestClass;//use引入類

/**
 * 類描述
 *
 * 類名必須大寫開(kāi)頭駝峰.
 */
abstract class StandardExample // {}必須換行
{
  /**
  * 常量描述.
  *
  * @var string
  */
 const THIS_IS_A_CONST = ''; // 常量全部大寫下劃線分割

 /**
  * 屬性描述.
  *
  * @var string
  */
 public $nameTest = ''; // 屬性名稱建議開(kāi)頭小寫駝峰
            // 成員屬性必須添加public(不能省略), private, protected修飾符

 /**
  * 屬性描述.
  *
  * @var string
  */
 private $_privateNameTest = ''; // 類私有成員屬性,【個(gè)人建議】下劃線小寫開(kāi)頭駝峰

 /**
  * 構(gòu)造函數(shù).
  *
  * 構(gòu)造函數(shù)描述
  *
  * @param string $value 形參名稱/描述
  */
 public function __construct($value = '')// 成員方法必須添加public(不能省略), private, protected修飾符
 {// {}必須換行

  $this->nameTest = new TestClass();

  // 鏈?zhǔn)讲僮?  $this->nameTest->functionOne()
          ->functionTwo()
          ->functionThree();

  // 一段代碼邏輯執(zhí)行完畢 換行
  // code...
 }

 /**
  * 成員方法名稱.
  *
  * 成員方法描述
  *
  * @param string $value 形參名稱/描述
  *
  * @return 返回值類型    返回值描述
  * 返回值類型:string,array,object,mixed(多種,不確定的),void(無(wú)返回值)
  */
 public function testFunction($value = '')// 成員方法必須小寫開(kāi)頭駝峰
 {
   // code...
 }

 /**
  * 成員方法名稱.
  *
  * 成員方法描述
  *
  * @param string $value 形參名稱/描述
  *
  * @return 返回值類型    返回值描述
  */
 private function _privateTestFunction($value = '')// 私有成員方法【個(gè)人建議】下劃線小寫開(kāi)頭駝峰
 {
   // 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  = '', // 變量命名可小寫開(kāi)頭駝峰或者下劃線命名,個(gè)人那習(xí)慣,據(jù)說(shuō)下劃線可讀性好
  $valueTwo  = '',
  $valueThree = '',
  $valueFour = '',
  $valueFive = '',
  $valueSix  = '')// 參數(shù)過(guò)多換行
 {
  if ($valueOne === $valueTwo) {// 控制結(jié)構(gòu)=>后加空格,同{一行,(右邊和)左邊不加空格
   // 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...
  }
 }
}