psg / psr-100-implementation
PSR-100 的快速 PHP7 实现
0.2
2021-07-11 23:27 UTC
Requires
- php: >=7.1
- php-http/message-factory: ^1.0
- psg/psr-100: ^0.2.0
- psr/http-message: ^1.0
Requires (Dev)
- http-interop/http-factory-tests: ^0.9
- php-http/psr7-integration-tests: ^1.0
- phpunit/phpunit: ^7.5 || 8.5 || 9.4
- symfony/error-handler: ^4.4
Provides
This package is auto-updated.
Last update: 2024-09-12 06:40:19 UTC
README
在移植 Nyholm/psr7 时,出现了一些问题
- 不能通过一个接收扩展接口类型的方法扩展接口并覆盖方法
interface x{ public function bob(); } interface y extends x{ public function bill(); } interface bob{ public function process(x $bob); } interface sue extends bob{ public function process(y $bob); }
- 但我可以扩展为不同的返回值
interface x{ public function bob(); } interface y extends x{ public function bill(); } interface bob{ public function process(x $bob): x; } interface sue extends bob{ public function process(x $bob): y; }
- 与
implement
的情况相同。因此,在必要时使用原始的 Psr 接口。 - 由于 PHP 不提供具有相同名称的静态和非静态方法的能力,Stream::create,它会影响新的接口,因此已变为 Stream::defaultCreate。在这里,概念是,静态的 create 将使用默认配置来创建流。
- 为 Response 编写的测试可以接受状态字符串,但在 __construct 中状态被类型化为 int。删除 int 类型声明。
- 在 tests/UploadedFileTest.php 清理时,在 phpunit 测试中发生错误,当 \file_exists 遇到非字符串时。将输入符合为字符串。