程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP符合PSR編程規范的實例分享,phppsr編程實例

PHP符合PSR編程規范的實例分享,phppsr編程實例

編輯:關於PHP編程

PHP符合PSR編程規范的實例分享,phppsr編程實例


前言

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

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

PHP-FIG

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

目前從官網看,已經投票( http://www.php-fig.org/psr/  )通過的有7個大的規范了

  1. PSR-0 自動加載規范 ( 官方已廢棄,主要是php5.3以前沒有命名空間 )
  2. PSR-1 編碼規范
  3. PSR-2 編碼風格推薦
  4. PSR-3 日志接口
  5. PSR-4 改進的自動加載規范( 官方推薦 ,規范更簡潔調理清晰了)
  6. PSR-6 緩存接口
  7. PSR-7 HTTP消息接口

實例

<?php
namespace Standard; // 頂部命名空間
// 空一行
use Test\TestClass;//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...
  }
 }
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved