建立於: 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)
以PSR-7 HTTP Message Interface為例:
在Slim框架中的reqeust及response物件,就是支援PSR-7介面,這讓Slim非常自由的可以去使用任何PSR-7的實做,
例如:
Slim程式的路由可以不回傳
雖然Slim提供了PSR-7實做,然而,我們可以自由換Slim預設的PSR 7物件,改由其他第三方的實做。
這個群組是在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。 |
|
一但我們安裝了這些套件,我們就能取得PSR-7的要求。 |
|
No Comment
Post your comment