Ubuntu 22.04 + Magento 2.4.7-beta1 + php8.2 + ошибка компиляции стороннего приложения "Amasty"
У меня есть веб-сайт (Magento 2.4.2 + php7.4), который работает хорошо, затем я обновил его до (Magento 2.4.7-beta1 + php8.2) через композитор, обновление прошло успешно, если стороннее приложение «Amasty» удален из проекта, «sudo php bin/magento setup:di:compile» тоже работает хорошо; если в проекте сохранено стороннее приложение «Amasty», «sudo php bin/magento setup:di:compile» получит ошибку: компиляция была запущена. Генерация кода репозиториев... 1/9 [===>------------------------] 11% < 1 с 125.0 MiBPHP Неустранимая ошибка: невозможно объявите класс Amasty\AdminActionsLog\lib\HtmlNode, поскольку это имя уже используется в /var/www/html/mydomain.com/app/code/Amasty/AdminActionsLog/lib/HtmlNode.php в строке 6, обратите внимание: строка 6 содержимое — «class HtmlNode {». Ниже приведены 3 файла частичного исходного кода PHP среди Amasty:(1) app\code\Amasty\AdminActionsLog\lib\HtmlNode.php
<?php
namespace Amasty\AdminActionsLog\lib;
include_once 'HtmlNodeText.php';
include_once 'HtmlSelector.php';
class HtmlNode {
const NODE_ELEMENT = 0;
(2) app\code\Amasty\AdminActionsLog\lib\HtmlNodeCdata.php
<?php
namespace Amasty\AdminActionsLog\lib;
class HtmlNodeCdata extends HtmlNode {
(3) app\code\Amasty\AdminActionsLog\lib\HtmlNodeComment.php
<?php
namespace Amasty\AdminActionsLog\lib;
class HtmlNodeComment extends HtmlNode {
мой вопрос: почему «sudo php bin/magento setup:di:compile» хорошо работал в php7.4, но получал ошибки в php8.2 и как это исправить?
заранее спасибо.
1 ответ
Вы обновились до последней версии Magento, которая находится в стадии бета-тестирования. Пакеты Amasty не поддерживают эту версию. Происходит переход с PHP на более новую версию, многие вещи могут устареть, некоторые объекты в Magento также получают обновления, и вам необходимо обновить пакеты Amasty до версии, совместимой в первую очередь с PHP8.2 и во-вторых, с Magento в более новой версии.
Исправлять это нет особого смысла. Я бы задал вопрос в другую сторону. Почему вы хотите использовать бета-версию Magento вместо того, чтобы выбирать стабильную версию, до которой сторонние пакеты, возможно, уже были обновлены?