PSR : php編碼規範

來源:互聯網
上載者:User

標籤:

諸王混戰

關於開發標準這塊,可以說一直都是風格迥異,各家都有各家的玩法,民間更是個人玩個人的。目前我們國內比較出名的幾個架構(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個大的規範了


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

  • PSR-1 編碼規範

  • PSR-2 編碼風格推薦

  • PSR-3 日誌介面

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

  • PSR-6 緩衝介面

  • PSR-7 HTTP訊息介面

Composer自動載入

在Composer 依賴管理工具實現的autoload 推薦第三方依賴庫或者項目使用 PSR-4,但是Composer本身 也是向下相容PSR-0的


博文(Composer : php依賴管理工具)中示範代碼中,安裝了兩個庫

  • phpexcel   

  • monolog 


這兩個庫,phpexcel 實現的是PSR-0規範,monolog實現的確實PSR-4規範,這是從各自庫目錄下面的composer.json檔案得知的




PSR-0 與 PSR-4 區別

其實PSR-0 和 PSR-4 在內容上差異不大,這裡也就不說定義了


  • PSR-0中最後一個\之後的類名,如有底線會轉化成路徑分隔字元 如Name_Space_Test會轉換成Name\Space\Test.php,這是出於對PHP5.3以前版本相容的考慮

  • PSR-0有更深的目錄結構,比如定義了NS為 Foo\Bar=>vendor\foo\bar\src,use Foo\Bar\Tool\Request調用NS。

    如果以PSR-0方式載入,實際的目錄為vendor\foo\bar\src\Foo\Bar\Tool\Request.php

    如果以PSR-4方式載入,實際目錄為vendor\foo\bar\src\Tool\Request.php


參考文檔

php-fig中文版: https://github.com/PizzaLiu/PHP-FIG

php-fig官網:http://www.php-fig.org/ 



原文地址:PSR : php編碼規範
標籤:psr   composer   autoload   php-fig   yii   laravel   

PSR : php編碼規範

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.