最新6.0.6已经支持PHP8.0,建议直接升级ThinkPHP版本!
PHP8下全新安装ThinkPHP6.0.X出现报错,如下
Deprecated: Method ReflectionParameter::getClass() is deprecated in xxxx\vendor\topthink\framework\src\think\Container.php on line 443
解决方法,找到文件
xxxx\vendor\topthink\framework\src\think\Container.php
定位到443、445、446行
443 // $class = $param->getClass(); // 注释掉该语句 $reflectionType = $param->getType();// 替换成该语句 445 // if ($class) { 446 // $args[] = $this->getObjectParam($class->getName(), $vars); // 注释掉上面445 446语句 改成下面 if ($reflectionType && $reflectionType->isBuiltin() === false) { $args[] = $this->getObjectParam($reflectionType->getName(), $vars);
具体Issues查看官方git:https://github.com/top-think/framework/pull/2371
代码变动文件:https://github.com/top-think/framework/commit/df4a07d2f51307a6fabdf75dc5b4b7f8b0ad8af8