PHP 標準規範

PHP 標準規範

PSR

PSR 簡介

PSR 是 PHP Standard Recommendations 的簡寫,由 PHP FIG 組織制定的 PHP 規範,是 PHP 開發的實踐標準。php

PHP FIG,FIG 是 Framework Interoperability Group(框架可互用性小組)的縮寫,由幾位開源框架的開發者成立於 2009 年,從那開始也選取了不少其餘成員進來(包括但不限於 Laravel, Joomla, Drupal, Composer, Phalcon, Slim, Symfony, Zend Framework 等),雖然不是「官方」組織,但也表明了大部分的 PHP 社區。laravel

項目的目的在於:經過框架做者或者框架的表明之間討論,以最低程度的限制,制定一個協做標準,各個框架遵循統一的編碼規範,避免各家自行發展的風格阻礙了 PHP 的發展,解決這個程序設計師由來已久的困擾。git

以上內容來源:https://github.com/php-figgithub

PSR 標準內容

狀態 序號 標題 撰稿者 協調者 發起人
X 0 自動加載規範 Matthew Weier O'Phinney N/A N/A
A 1 基礎編碼規範 Paul M. Jones N/A N/A
A 2 編碼風格規範 Paul M. Jones N/A N/A
A 3 日誌接口規範 Jordi Boggiano N/A N/A
A 4 自動加載規範 Paul M. Jones Phil Sturgeon Larry Garfield
D 5 PHPDoc 標準 Mike van Riel Vacant Vacant
A 6 緩存接口規範 Larry Garfield Paul Dragoonis Robert Hafner
A 7 HTTP 消息接口規範 Matthew Weier O'Phinney Beau Simensen Paul M. Jones
D 8 Huggable 接口 Larry Garfield Vacant Paul M. Jones
D 9 項目安全問題公示 Lukas Kahwe Smith Korvin Szanto Larry Garfield
D 10 項目安全上報方法 Lukas Kahwe Smith Larry Garfield Korvin Szanto
D 11 服務容器接口 Matthieu Napoli, David Négrier Paul M. Jones Vacant
D 12 全量編碼風格規範 Korvin Szanto Alexander Makarov Robert Deutz
D 13 超媒體連接 Larry Garfield Matthew Weier O'Phinney Evert Pot

說明: A (Accepted) = 已經過 | D (Draft) = 起草中 | R (Review) = 審查中 | X (Deprecated) = 已廢棄。緩存

PSR 解決的3個問題

AUTOLOADING

​ 在此以前,各個框架或廠商各自作本身的自動加載,有的使用 void __autoload ( string $class ) 有的使用 bool spl_autoload_register() 各自命名空間和文件目錄對應規則不一致,須要熟悉各個框架和類庫的自動加載機制才能順利使用。安全

​ 有了統一的自動加載規範(統一的命名空間與文件路徑映射規範)以後,只須要遵循同一個自動加載機制就可使用各個框架和類庫,甚至不用知道他們內部具體如何實現自動加載。composer

具體 PSR 標準有:框架

  1. PSR-4: Improved Autoloading

INTERFACES

​ 在此以前,沒有一些統一的規範接口,一樣的功能(例如Log)各個框架或類庫都本身實現,一致都在從新制造輪子,有了一些統一的接口,只要一個廠商或框架實現了統一接口,其它廠商或框架不須要從新實現,直接使用便可。ide

具體 PSR 標準有:工具

  1. PSR-3: Logger Interface
  2. PSR-6: Caching Interface
  3. PSR-7: HTTP Message Interfaces
  4. PSR-11: Container Interface
  5. PSR-13: Hypermedia Links
  6. PSR-15: HTTP Handlers
  7. PSR-16: Simple Cache

CODING STYLES

​ 有了統一編碼風格規範,更有利於查看和學習各個框架或類庫,不不須要每次都適應新的編碼風格。

同時在開發團隊內部使用統一的編碼規範更有利於代碼審查、版本控制、團隊內部交流。

具體 PSR 標準有:

  1. PSR-1: Basic Coding Standard
  2. PSR-2: Coding Style Guide

輔助工具

phpcs

PHP Code Sniffer 簡稱 phpcs ,主要用來檢查 PHP 代碼是否符合 PSR-2 的標準。若是 PHP 代碼中存在不符合 PSR-2 標準的部分,會產生一份錯誤報告,便於咱們檢查哪些代碼不符合標準。

安裝

composer global require 'squizlabs/php_codesniffer=*'

圖片描述

測試

phpcs --version
圖片描述

使用

phpcs --standard=PSR2 PHP文件(或目錄)
圖片描述

注意 phpcs 默認使用的編碼風格標註是 PEAR ,因此若是要檢查 PSR-2 標準須要明確指定(--standard=PSR2)。

檢查 phpcs 支持哪些編碼規範

phpcs -i
圖片描述

詳細操做

查看官方文檔:PHP CodeSniffer WIKi

php-cs-fixer

PHP Coding Standards Fixer 簡稱 php-cs-fixer, 能夠用來幫我修正代碼編碼風格使其符合 PSR-2 規範。

安裝

composer global require friendsofphp/php-cs-fixer

圖片描述

測試

php-cs-fixer --version

圖片描述

使用

php-cs-fixer fix php /path/to/dir(or /path/to/file)
圖片描述

詳細操做

查看官方文檔:PHP-CS-Fixer

相關文章
相關標籤/搜索