Magento 2.2.1 无法保存产品 - 类型推断期间发生错误缩小。请在 bugs.php.net 上提交错误报告

Magento 2.2.1 unable to save product - error Narrowing occurred during type inference. Please file a bug report on bugs.php.net

昨天我更新了一个模块,使用 composer update 命令也更新了一些 magento 框架文件。之后无法再在调整库存后保存产品,出现 PhP 错误:

Warning: Narrowing occurred during type inference. Please file a bug report on bugs.php.net in /home/jilco01/public_html/vendor/composer/ClassLoader.php on line 444 and product is not saved

我的 magento 2.2.1 在 Php 7.1.12 上运行,并带有 Opcache 和 Redis。

这不是PHP7.1.12 bug的解决方案,但可以帮助您在出补丁或新版本时避免此警告(我想它可以解决)。

OPCache 库存在问题,“...通过在共享内存中存储预编译的脚本字节码来提高 PHP 性能...”更多信息:http://php.net/manual/en/intro.opcache.php.

"solution"在加载应用程序时清除缓存。如果您有 "single entry point" 应用程序(例如,当您使用框架时),这很容易。只需将下一个函数放在 index.php(或等效)文件的开头:

opcache_reset();

我不确定这是否可以用于生产服务器,因为可能会使应用程序变重。

打开 PHP-FPM 后问题消失了...

在我的例子中,错误是由升级新版本后重新启动 php-fpm(用于文件夹符号链接更新)引起的。

重新启动 nginx 也可以解决该错误。但我认为这是临时解决方案 php 更新应该可以解决这个问题。