摘要:標準規范簡介是的簡寫,由組織制定的規范,是開發的實踐標準。具體標準有有了統一編碼風格規范,更有利于查看和學習各個框架或類庫,不不需要每次都適應新的編碼風格。同時在開發團隊內部使用統一的編碼規范更有利于代碼審查版本控制團隊內部交流。
PHP 標準規范 PSR PSR 簡介
PSR 是 PHP Standard Recommendations 的簡寫,由 PHP FIG 組織制定的 PHP 規范,是 PHP 開發的實踐標準。
PHP FIG,FIG 是 Framework Interoperability Group(框架可互用性小組)的縮寫,由幾位開源框架的開發者成立于 2009 年,從那開始也選取了很多其他成員進來(包括但不限于 Laravel, Joomla, Drupal, Composer, Phalcon, Slim, Symfony, Zend Framework 等),雖然不是「官方」組織,但也代表了大部分的 PHP 社區。
項目的目的在于:通過框架作者或者框架的代表之間討論,以最低程度的限制,制定一個協作標準,各個框架遵循統一的編碼規范,避免各家自行發展的風格阻礙了 PHP 的發展,解決這個程序設計師由來已久的困擾。
以上內容來源:https://github.com/php-fig
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() 各自命名空間和文件目錄對應規則不一致,需要熟悉各個框架和類庫的自動加載機制才能順利使用。
? 有了統一的自動加載規范(統一的命名空間與文件路徑映射規范)之后,只需要遵循同一個自動加載機制就可以使用各個框架和類庫,甚至不用知道他們內部具體如何實現自動加載。
具體 PSR 標準有:
PSR-4: Improved Autoloading
INTERFACES? 在此之前,沒有一些統一的規范接口,同樣的功能(例如Log)各個框架或類庫都自己實現,一致都在重新制造輪子,有了一些統一的接口,只要一個廠商或框架實現了統一接口,其它廠商或框架不需要重新實現,直接使用即可。
具體 PSR 標準有:
PSR-3: Logger Interface
PSR-6: Caching Interface
PSR-7: HTTP Message Interfaces
PSR-11: Container Interface
PSR-13: Hypermedia Links
PSR-15: HTTP Handlers
PSR-16: Simple Cache
CODING STYLES? 有了統一編碼風格規范,更有利于查看和學習各個框架或類庫,不不需要每次都適應新的編碼風格。
同時在開發團隊內部使用統一的編碼規范更有利于代碼審查、版本控制、團隊內部交流。
具體 PSR 標準有:
PSR-1: Basic Coding Standard
PSR-2: Coding Style Guide
輔助工具 phpcsPHP 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 -i
詳細操作
查看官方文檔:PHP CodeSniffer WIKi
php-cs-fixerPHP 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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28806.html
摘要:今天這篇分享將簡單地梳理一下規范,并介紹一個代碼檢查工具,結合以及進行實踐。目前流行的一些規范是的簡寫,由組織制定的規范,是開發的實踐標準。目前已表決通過了套標準,已經得到大部分框架的支持和認可。 > 作為一個新手,寫出規范的代碼也是一門必修課,除了閱讀相應的代碼規范文檔之外,充分利用相關的工具能使得進階之路事半功倍。今天這篇分享將簡單地梳理一下 PHP 規范,并介紹一個代碼檢查工具 ...
摘要:前言在開始之前,歡迎關注我自己的博客這篇文章是對自動加載功能的一個總結,內容涉及的自動加載功能的命名空間的與標準等內容。要實現第一步,第二步的功能,必須在開發時約定類名與磁盤文件的映射方法,只有這樣我們才能根據類名找到它對應的磁盤文件。 前言 在開始之前,歡迎關注我自己的博客:www.leoyang90.cn 這篇文章是對PHP自動加載功能的一個總結,內容涉及PHP的自動加載功能、P...
摘要:本文目的是通過自己寫的一個的簡單的庫花密密碼生成工具,來學習我認為的庫開發的一些規范,以及上持續構建你的項目的一些方法。給自己的項目開啟持續構建。包發布以及當你的代碼完成后,測試完成后。 本文目的是通過自己寫的一個php的簡單的庫(花密密碼生成工具), 來學習我認為的php庫開發的一些規范,以及github上持續構建你的項目的一些方法。其實是為了顯示下邊一系列的的徽章 showImg(...
摘要:它包含兩類腳本,和地址腳本對文件定義了一系列的代碼規范通常使用官方的代碼規范標準,比如的,能夠檢測出不符合代碼規范的代碼并發出警告或報錯可設置報錯等級。腳本能自動修正代碼格式上不符合規范的部分。 Last-Modified: 2019年5月10日13:59:27 參考鏈接 PHP開發規范之使用phpcbf腳本自動修正代碼格式 在PhpStorm中使用PSR2編碼規范phpcbf腳本自...
摘要:的使命是實現框架之間的互操作性。個人和官方都認為開發者應該遵循更為嚴格的代碼標準,在現代的生態系統中,風格統一,可以更好的讓其他開發者理解代碼。記錄的消息用于診斷檢查和排除應用中的操作穩定性和性能方面的問題。 原文是在我自己博客中,小伙伴也可以點閱讀原文進行跳轉查看,還有好聽的背景音樂噢~ ????PSR是PHP Standards Recommendation的簡稱,意為PHP推薦標...
閱讀 2486·2021-11-15 18:14
閱讀 1709·2021-10-14 09:42
閱讀 3744·2021-10-11 10:58
閱讀 3938·2021-10-09 09:44
閱讀 2409·2021-09-26 09:55
閱讀 2430·2021-09-24 10:38
閱讀 2024·2021-09-04 16:48
閱讀 3268·2021-09-02 15:21