by Devin Yang

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

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

需要登入才可留言!

類似的文章


php,docker,dlaravel

我建立的phpenv容器環境簡單介紹

沒時間拍介紹影片,我就來隨便抓些畫面介紹我使用的容器環境deviny/phpenv。https://github.com/DevinY/phpenvphpenv算是我之前D-Laravel開源專案的進化版本,概念上延用了很多Dlaravel的操作方式。容器的更新上偏向使用者自行控制去Build自己的image,所以我不太會去更動版號了,其實D-Laravel的php版號,好像我也很久沒動啦:p 

php openssl curl

修正CA設定問題

有時可能PHP版本更新或環境變動造成找不到ca檔案。 修正很簡單

php, CentOS, phpize

在舊版的CentOS上找不到phpize,無法編譯php擴充。

在舊版的CentOS上找不到phpize,無法編譯php擴充。 如何安裝phpize呢?