psg/psr-100-implementation

PSR-100 的快速 PHP7 实现

0.2 2021-07-11 23:27 UTC

This package is auto-updated.

Last update: 2024-09-12 06:40:19 UTC


README

Nyholm/psr7

在移植 Nyholm/psr7 时,出现了一些问题

  1. 不能通过一个接收扩展接口类型的方法扩展接口并覆盖方法
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);
}
  1. 但我可以扩展为不同的返回值
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;
}
  1. implement 的情况相同。因此,在必要时使用原始的 Psr 接口。
  2. 由于 PHP 不提供具有相同名称的静态和非静态方法的能力,Stream::create,它会影响新的接口,因此已变为 Stream::defaultCreate。在这里,概念是,静态的 create 将使用默认配置来创建流。
  3. 为 Response 编写的测试可以接受状态字符串,但在 __construct 中状态被类型化为 int。删除 int 类型声明。
  4. 在 tests/UploadedFileTest.php 清理时,在 phpunit 测试中发生错误,当 \file_exists 遇到非字符串时。将输入符合为字符串。