当前位置:首页 > php > ThinkPHP6.0在PHP8下报错解决方法

ThinkPHP6.0在PHP8下报错解决方法

原创 2020-12-10 php 1794

最新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

QQ截图20201210164727.png

声明:版权所有,违者必究 | 如未注明,均为原创 | 本网站采用 BY-NC-SA 协议进行授权

转载:转载请注明原文链接,违者必究 - :https://www.wolfcode.net/info/212/

分享给朋友:

相关文章

在PHP7+下监控Memcached服务、性能、扇区等信息

PHPMemcachedAdmin:一款网页可视化的Memcached工具

Swoole的PHP协程开发框架 imi 集成ThinkPHP模板引擎 think-template

在 imi 框架根目录中执行composer require topthink/think-template安装好模板引擎后,找到路径\vendor\topthink\think-template\src\Template.php找到 fetch() 渲染模板文件的方法,将最后一

PHP7下MongoDB自增或自减一个字段的值

findAndModify属于原子操作模型数据,所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongodb,不会出现查询到的文档没有保存完整的情况。

PHP的面向对象解析

早期编程由于受电脑硬件限制,程序都是追求效率,而忽略可理解性,扩充性,随着硬件技术的发展,编程越来越重视多人开发,程序员越来越重视程序的可靠性,可扩展性,可维护性,所以刺激了程序语言的发展