在PHP開發中,代碼的規范一直是一個大家都很關注的問題。因為規范的代碼,不僅能讓閱讀代碼的人更容易理解代碼,也能避免開發、維護過程中出現的巨大困難。因此PHP-FIG(PHP Framework Interop Group)制定了PSR(PHP Standards Recommendations)規范。下面我們來詳細學習一下PHP PSR規范。
PSR-1規范:基本編碼標準 PSR-1規范規定,PHP代碼必須采用標簽;命名空間,類,屬性必須采用大括號獨立為一行的格式,方法和方法參數必須采用小駝峰式格式。
例子:
PSR-2規范:代碼風格標準 PSR-2規范是代碼風格標準,制定了一系列規則以使所有PHP代碼在視覺上具有一致性。其中包括縮進,關鍵字大小寫,類、方法命名規則,代碼文件結尾,空白行等等。
例子:
PSR-3規范:日志接口規范 PSR-3規范定義了通用日志接口,以便在使用日志功能時使用統一的API。具體實現方式可以自由選擇,唯一要求是必須遵循標準化接口。
例子:
PSR-4規范:自動加載規范 自動加載規范定義了一個文件加載策略,PSR-4規范是針對現代PHP框架及其它應用場景下的自動加載的一個規范。規定了文件路徑和命名空間的映射關系。
例子:
PSR-7規范:HTTP消息接口 PSR-7規定了一個HTTP消息接口,給PHP應用程序提供了一份統一的、反復驗證過的消息優先的解決方案。目的是為了產生更輕、更快和可擴展的應用程序和框架。
例子:
總結:PHP PSR規范共識制定了PHP相關的接口規范,便于不同的項目之間交互、協作。今天我們只簡單介紹了其中的幾個規范,閱讀更多規范詳情可以參考官方文檔。最后要強調的是,編碼規范不只是一種風格,更是一種開發態度。良好的編碼風格,能更快地理解和修復代碼,提高項目的同步性和可維護性。
PSR-1規范:基本編碼標準 PSR-1規范規定,PHP代碼必須采用標簽;命名空間,類,屬性必須采用大括號獨立為一行的格式,方法和方法參數必須采用小駝峰式格式。
例子:
<?php namespace Foo\Bar; <br> class Bar { public $property; <br> public function doSomething($parameter) { //code } } ?>
PSR-2規范:代碼風格標準 PSR-2規范是代碼風格標準,制定了一系列規則以使所有PHP代碼在視覺上具有一致性。其中包括縮進,關鍵字大小寫,類、方法命名規則,代碼文件結尾,空白行等等。
例子:
<?php <br> namespace Vendor\Package; <br> class ClassName { const MY_CONST = 'value'; <br> public function myMethod($var1, $var2) { //方法體 } <br> protected function myProMethod() { //方法體 } }
PSR-3規范:日志接口規范 PSR-3規范定義了通用日志接口,以便在使用日志功能時使用統一的API。具體實現方式可以自由選擇,唯一要求是必須遵循標準化接口。
例子:
<?php namespace foo; <br> use Psr\Log\LoggerInterface; <br> class Bar { private $logger; <br> public function __construct(LoggerInterface $logger) { $this->logger = $logger; } <br> public function log($message, array $context = array()) { $this->logger->info($message, $context); } } ?>
PSR-4規范:自動加載規范 自動加載規范定義了一個文件加載策略,PSR-4規范是針對現代PHP框架及其它應用場景下的自動加載的一個規范。規定了文件路徑和命名空間的映射關系。
例子:
<?php //自動加載映射關系 "autoload": { "psr-4": { "Namespace\\": "path/to/app", "Namespace\\SubNamespace\\": "path/to/app" } } ?>
PSR-7規范:HTTP消息接口 PSR-7規定了一個HTTP消息接口,給PHP應用程序提供了一份統一的、反復驗證過的消息優先的解決方案。目的是為了產生更輕、更快和可擴展的應用程序和框架。
例子:
<?php use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ResponseInterface; <br> $server = \GuzzleHttp\Psr7\ServerRequest::fromGlobals(); <br> $response = new \GuzzleHttp\Psr7\Response(); $response->getBody()->write('Hello, World!'); <br> $size = $response->getBody()->getSize(); $contentType = $response->getHeaderLine('Content-Type'); ?>
總結:PHP PSR規范共識制定了PHP相關的接口規范,便于不同的項目之間交互、協作。今天我們只簡單介紹了其中的幾個規范,閱讀更多規范詳情可以參考官方文檔。最后要強調的是,編碼規范不只是一種風格,更是一種開發態度。良好的編碼風格,能更快地理解和修復代碼,提高項目的同步性和可維護性。
上一篇php pushkit
下一篇php psr 4