首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在将php更新到php 8之后,guzzlehttp/guzzle不工作

在将php更新到php 8之后,guzzlehttp/guzzle不工作
EN

Stack Overflow用户
提问于 2020-11-27 07:43:31
回答 2查看 3.2K关注 0票数 2

我使用guzzlehttp/guzzle包在Laravel 8中。升级到PHP8之后,我得到:

Symfony\Component\ErrorHandler\Error\FatalError: Invalid opcode 117/2/0. in file ../vendor/defuse/php-encryption/src/Core.php on line 412

composer.json:

代码语言:javascript
复制
    "require": {
        "php": "^8.0",
        "doctrine/dbal": "^2.12.1",
        "fideloper/proxy": "^4.4",
        "fruitcake/laravel-cors": "^2.0",
        "guzzlehttp/guzzle": "^7.2",
        "laravel/framework": "^8.12",
        "laravel/passport": "^10.0",
        "laravel/tinker": "^2.5",
      "ext-json": "*"
    },
    "require-dev": {
        "facade/ignition": "^2.5",
        "fakerphp/faker": "^1.9.1",
        "mockery/mockery": "^1.4.2",
        "nunomaduro/collision": "^5.0",
        "phpunit/phpunit": "^9.3.3"
    },

php -v

代码语言:javascript
复制
PHP 8.0.0RC3 (cli) (built: Oct 31 2020 17:06:57) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.0RC3, Copyright (c), by Zend Technologies

UPD 1如果我在$this->client = new \GuzzleHttp\Client; $response = $this->client->post(...)之前调用opcache_reset ();,它可以工作。UPD 2 $ service php8.0-fpm reload -没有帮助。UPD 3重新引导服务器没有帮助。

我怎么才能解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-27 21:27:00

问题不是guzzlehttp/guzzle。问题是,在Ubuntu20.10 PHP8上没有清除opcache。如果在调用opcache_reset();之前执行new \GuzzleHttp\Client;,那么一切都正常。

票数 0
EN

Stack Overflow用户

发布于 2020-11-30 21:18:54

正如@NikiC在上面的评论中说的那样,它实际上是PHP中的一个bug。修复这里:https://github.com/php/php-src/commit/fdb05b92bfb62906771fd41f3fcdbc184d89e3fe

每次重置opcache并不是一个好主意,因为如果要这样做,您最好没有任何opcache。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65033643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档