by Devin Yang

建立於: 5年前 ( 更新: 5年前 )

PSR全稱叫做「PHP標準建議」(PHP Standards Recommendations)。由FIG(PHP框架互用性群組)所制定的建議規範,
這個群組是在2009年的php|tek由一些框架的開發者發起的,由最初的5個到現在已超出20多個了。

在「PHP標準建議」中有很多的編號,每個編號代表了不同的規範

例如:
PHP標準建議編號1(PSR-1),基本編碼標準. 像是類別(Class)名稱必需宣告為StudlyCaps,方法(Method)的名稱需宣告為camelCase..等
PHP標準建議編號2(PSR-2),則是PSR-1的擴充,規範了PHP編碼風格,像是extends或是implements必需與class名稱同一行...等。
PHP標準建議編號4(PSR-4),則定義了自動載入(Autoloader標準),Composer也是FIG的成員,
例如現今的Laravel框架中,他的composer.json就可看到使用了PSR-4自動載入的蹤跡,
因為PSR-0的自動載入已被列為棄用(DEPRECATED),但在composer依然還是有支援,如果真的要用。

下表我列出通過的規範,當然也有審核中及草稿階段的。有興趣可參考右方連結: Recommendations (PSRs)
Num Title Editor Coordinator Sponsor
1 Basic Coding Standard Paul M. Jones N/A N/A
2 Coding Style Guide Paul M. Jones N/A N/A
3 Logger Interface Jordi Boggiano N/A N/A
4 Autoloading Standard Paul M. Jones Phil Sturgeon Larry Garfield
6 Caching Interface Larry Garfield Paul Dragoonis Robert Hafner
7 HTTP Message Interface Matthew Weier O’Phinney Beau Simensen Paul M. Jones
11 Container Interface Matthieu Napoli, David Négrier Matthew Weier O’Phinney Korvin Szanto
13 Hypermedia Links Larry Garfield Matthew Weier O’Phinney Marc Alexander
16 Simple Cache Paul Dragoonis Jordi Boggiano Fabien Potencier
 
PSR-7 HTTP Message Interface為例:
在Slim框架中的reqeust及response物件,就是支援PSR-7介面,這讓Slim非常自由的可以去使用任何PSR-7的實做,
例如:
Slim程式的路由可以不回傳  \Slim\Http\Response 實例. 他可以回傳  \GuzzleHttp\Psr7\CachingStream 實例,
雖然Slim提供了PSR-7實做,然而,我們可以自由換Slim預設的PSR 7物件,改由其他第三方的實做。
 
在Laravel的框架中,我們可以透過加裝函式庫,來獲得一個PSR-7的實例reqeust,而不是Laravel的request。
composer require symfony/psr-http-message-bridge
composer require zendframework/zend-diactoros

一但我們安裝了這些套件,我們就能取得PSR-7的要求。
use Psr\Http\Message\ServerRequestInterface;
Route::get('/', function (ServerRequestInterface $request) {
//
});


 

Tags: php

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


phpenv

phpenv資料庫環境

本文介紹如何拉出phpenv的資料庫服務,到獨立環境。PHPENV可以透過環境變數,在SERVICE中定義資料庫的服務,如果有需要在開發環境中,我們可以很輕易的透過./start及./restart等指令,進行服務全部重啟,nginx、fpm及db 。但如果在線上模式,我並不希望重啟網站,就連整個DB也重啟,例如更新php版本時,並不需要重啟DB。

php

用PHP透過IMAP清空HiBox的收件夾

收信的信箱爆了,所有的信都不想要,用PHP清空收件夾。 以下是我抄來的範例程式,做了小調整。

docker,phpenv

在Linux上ping不到host.docker.internal

可用docker version檢查,確認版本在Docker v20.10+即可加入extra_hosts如下: