Magento 2.3.3 Не удается выполнить настройку magento:di:компиляция с ошибкой, в которой упоминается интерфейс invoiceflexfieldprocessor
Я установил новую версию Magento 2.3.3.
После того, как я выполню команду:
Php bin/настройка magento:di:компиляция
Я столкнулся со следующей ошибкой:
Неустранимая ошибка PHP: Интерфейс "Вершина\Налог\Модель\Flexfield\Процессор\Интерфейс Invoiceflexfieldprocessor" не найден в/var/www/html/magento2/vendor/vertex/module-tax/Model/FlexField/Processor/OrderCurrencyGetterProcessor.php в строке 24
Пожалуйста обратитесь к следующему снимку экрана:
Как это решить.
Заранее благодарю.
5 answers
Перейдите к файлу Ниже
/vendor/vertex/module-tax/Model/FlexField/Processor/OrderCurrencyGetterProcessor.php
В конце предложения " использовать " в
добавьте следующие две строки:
use Vertex\Tax\Model\FlexField\Processor\InvoiceFlexFieldProcessorInterface;
use Vertex\Tax\Model\FlexField\Processor\TaxCalculationFlexFieldProcessorInterface;
И снова выполните команду ниже
php bin/magento setup:di:compile
Я сталкиваюсь с той же проблемой. Кажется, это всего лишь проблема с ускорением: https://github.com/magento/magento2/issues/24930#issuecomment-543949135
Поэтому лучше изменить только написание пространства имен без добавления двух строк использования:
namespace Vertex\Tax\Model\FlexField\Processor;
FlexField вместо Flexfield
Это может иметь значение для внешних функций, использующих этот класс.
Если вы, как и я, не можете отредактировать файл (потому что наш компакт-диск выйдет из строя), выполните следующие действия:
- В корневом каталоге вашего проекта создайте каталог
patches/composer
- Создайте файл с именем
vendor-vertex-compilation-issue.diff
- В вашем
composer.json
добавьте это в список "требуется""cweagans/composer-patches": "1.6.7"
- Все еще в вашем
composer.json
добавьте это в дополнительные
"patches": {
"vertex/module-tax":{
"MAGETWO: vendor vertex compilation issue": "patches/composer/vendor-vertex-compilation-issue.diff"
}
}
- Поместите следующее содержимое в файл
vendor-vertex-compilation-issue.diff
, который вы создали ранее
diff --git a/Model/FlexField/Processor/OrderCurrencyGetterProcessor.php b/Model/FlexField/Processor/OrderCurrencyGetterProcessor.php
index 6fb4944..86a66f4 100644
--- a/Model/FlexField/Processor/OrderCurrencyGetterProcessor.php
+++ b/Model/FlexField/Processor/OrderCurrencyGetterProcessor.php
@@ -4,7 +4,7 @@
* @author Mediotype https://www.mediotype.com/
*/
-namespace Vertex\Tax\Model\Flexfield\Processor;
+namespace Vertex\Tax\Model\FlexField\Processor;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Quote\Api\CartRepositoryInterface;
- выполнить
composer install
Это должно установить модуль vertex и применить исправление к модулю, а затем вы можете продолжить компиляцию Magento, как обычно
ОБНОВЛЕНИЕ
Начиная с Magento 2.3.4, налог на вершину/модуль был обновлен до 3.3.0
(с 3.2.0
), проблема устранена, и исправление больше не требуется
Файл Goto:
/vendor/vertex/module-tax/Model/FlexField/Processor/OrderCurrencyGetterProcessor.php
Добавить недостающую строку:
Использовать Вершина\Налог\Модель\Гибкое поле\Процессор\Вычислениеflexfieldпроцессоринтерфейс;
После
Используйте вершину\Налог\Модель\FlexField\flexfieldprocessableattributefactory;
И повторите попытку установки-обновления и повторной компиляции.
Для получения дополнительной информации вы можете проверить модуль di.xml файл для отображения абстрактного интерфейса.
Если вы не используете модуль Vertex Tax в своей установке, вы можете использовать ключ replace
в JSON composer, чтобы файлы модуля даже не попадали в вашу установку.
// composer.json
{
"name": "magento2/testing",
"type": "project",
"require": {
"magento/product-community-edition": "2.3.3",
...
},
...
"replace": {
...
"vertex/module-tax": "*", // add other modules to exclude here
...
}
}
Это решение только в том случае, если вы знаете, что ваши пользователи не захотят использовать модуль vertex tax вместо его исправления.