Magento 2.2.1 не удалось сохранить продукт-ошибка сужения произошла во время вывода типа. Пожалуйста, подайте отчет об ошибке на 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.

3 3

3 ответа:

Это не решение ошибки PHP 7.1.12, но может помочь вам избежать этого предупреждения при выходе патча или новой версии (я полагаю, что это может быть решено тогда).

Проблема заключается в библиотеке OPCache, которая "... улучшает производительность PHP, сохраняя байт-код предварительно скомпилированного скрипта в общей памяти..."дополнительная информация: http://php.net/manual/en/intro.opcache.php .

"решение" - очистить кэш при загрузке приложения. Это легко, если у вас есть " один приложение "Точка входа" (например, при использовании фреймворка). Просто поместите следующую функцию в начало вашего индекса.php (или эквивалентный) файл:

opcache_reset();

Я не уверен, что это может быть использовано в производственных серверах, потому что может сделать приложение тяжелым.

После включения PHP-FPM проблема исчезла...

В моем случае ошибка, вызванная перезапуском php-fpm после обновления нового выпуска (для обновления символьной ссылки на папку).

Перезапуск nginx дополнительно решить эту ошибку. Но я думаю, что это временное решение, обновление php должно исправить это.