PSR-7
- 我不太了解中间件,所以检查了它。
- 毕竟,我不太确定。
官方
http://www.php-fig.org/psr/psr-7/
http://www.php-fig.org/psr/psr-7/meta/
规范
- Request:
Psr\Http\Message\RequestInterface
- Response:
Psr\Http\Message\ResponseInterface
- 它们继承了
Psr\Http\Message\MessageInterface
http headers
- header key不区分大小写
- header用逗号分隔的字符串或array返回
- 并非所有字符都可以用逗号分隔。
- ex.Set-header
- request host header 优先于 request host component 或 URI host component
stream
StreamInterface
继承以隐藏实现详细信息- 使用 php://memory 和 php://temp
isReadable()
,isWritable()
, andisSeekable()
查看请求的可用性__toString()
简化了如何处理整个body contentsStreamInterface
不是不可变的
URI
- request包含request-target,有以下4种形式
- origin → 相对路径
- absolute → 绝对路径
- authority → 连接CONNECT requests时使用的httpclient和proxy
- asterisk → 与 OPTIONS 方法一起使用 →
*
- 继承 UriInterface
Server-side Requests
$_COOKIE
,$_GET
,$_POST
,$_FILES
,$_SERVER
ServerRequestInterface
继承RequestInterface
- ServerRequestInterface处理这些超全局变量
Uploaded files
- ServerRequestInterface在file upload时,使用UploadedFileInterface可以感觉很好
source
implementとかmwとか
- 如果你关注packagist的标记,你已经实现了很多
- https://packagist.org/search/?tags=psr-7
- https://packagist.org/search/?tags=http-message
- zendframework/zend-diactoros
- micheh/psr7-cache
- PSR-7 middleware applications
- zendframework/zend-expressive
- https://github.com/zendframework/zend-expressive
- dflydev/fig-cookies
- tuupola/slim-basic-auth
- oscarotero/psr7-middlewares
- relay/relay
- blast/turbine
如果你想找更多的文章
- qiita搜索
- はてなで検索するのもよさそう
- 海外文献も見つけることが出来るから
- http://b.hatena.ne.jp/search/text?q=PSR-7
下一个操作是
- 尝试创建使用 PSR-7 的应用程序
- 由于我通常使用event-driven的FW,我从来没有制作过使用中间件的应用程序。
- 精读实现
- 尝试自己实现规范
via https://qiita.com/kzbandai/items/3bda420412e1c3583b9b
最后更新于 2021年3月7日
相关博文
关于PSR-7的调查&为了进一步加深理解的链接集