must be compatible with PsrContainerContainerInterface::get($id)

chen_bruce

php版本:7.4.24
windows环境
webman升级到1.4之后,在启动服务时会报一下错误:

Fatal error: Declaration of Webman\Container::get(string $name) 
must be compatible with Psr\Container\ContainerInterface::get($id) in
E:\php\webman\vendor\workerman\webman-framework\src\Container.php on line 24

我的修改方法:
方法1:在文件“vendor\psr\container\src\ContainerInterface.php”中的参数前加上对应的类型
方法2:在文件“vendor\workerman\webman-framework\src\Container.php”实现接口的地方去掉参数前的类型

我的疑问:这两个文件都是第三方库,直接修改不是很好,请问有没有更好的方案解决这个问题?

1026 1 1
1个回答

xiuwang

感觉是不是psr/container 版本太低了
执行composer info 看下 psr/container 的版本

  • chen_bruce 2022-08-30

    psr/container 1.0.0 Common Container Interface (PHP FIG PSR-11)

  • xiuwang 2022-08-30

    试下执行 composer require psr/container ^1.1.2

  • chen_bruce 2022-08-30

    感谢,是版本低了。升级到1.1.2就好了

年代过于久远,无法发表回答
🔝