> psr-7:php
中HTTP消息的標準化方法
鍵接口:PSR-7包括
和RequestInterface
>的接口,每個處理HTTP消息的特定方面。
ResponseInterface
庫支持:許多流行的庫和框架支持PSR-7,包括Symfony,Zend Framework,Slim,Guzzle,Aura和Httplug。 取決於項目需求,可以通過適配器或部分進行集成。 ServerRequestInterface
理解HTTP消息:UploadedFileInterface
時,請求和響應之間會發生多個步驟。
>示例原始請求看起來像這樣:
bbc.co.uk
>由請求行(例如,
)和一個可選的主體組成。
<code>GET / HTTP/1.1 Host: bbc.co.uk User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) Accept: */* Referer:</code>
GET / HTTP/1.1
響應可能包括重定向(301個永久移動),然後是成功的請求(200可以)到實際的URL。
rn
對於請求和響應,結構相似:消息線,標題線,空白線和一個主體。 PSR-7將這些共同點抽象成界面。
curl
curl -i -H "Host: bbc.co.uk" ... http://bbc.co.uk
MessageInterface
:擴展RequestInterface
:擴展MessageInterface
代表http響應。 ResponseInterface
:擴展MessageInterface
用於源自服務器的請求,處理服務器和環境變量之類的詳細信息。 ServerRequestInterface
:提供用於流操作的包裝器,可以有效地處理大數據。 RequestInterface
UriInterface
UploadedFileInterface
StreamInterface
:方法簽名中的“接口”後綴可以導致冗長代碼。 建議將混疊作為解決方法。 >
:PSR-7專注於消息表示。 中間件的處理(請求和響應之間的處理)在PSR-15中分別解決。
開發人員可以通過多種方式使用PSR-7:
:直接實現接口。 >
間接實現(適配器)部分實現:僅使用特定的接口,例如
或結論:
> PSR-7為PHP中的HTTP消息處理提供了有價值的標準,從而提高了互操作性和代碼質量。雖然它引入了一些複雜性,但標準化和可維護性的好處大於許多項目的缺點。
以上是從HTTP消息到PSR-7:這一切的詳細內容。更多資訊請關注PHP中文網其他相關文章!