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

Пожалуйста обратитесь к следующему снимку экрана: enter image description here

Как это решить.

Заранее благодарю.

Author: Rakesh Donga, 2019-10-21

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
 31
Author: Rakesh Donga, 2020-08-27 04:19:19

Я сталкиваюсь с той же проблемой. Кажется, это всего лишь проблема с ускорением: https://github.com/magento/magento2/issues/24930#issuecomment-543949135

Поэтому лучше изменить только написание пространства имен без добавления двух строк использования:

namespace Vertex\Tax\Model\FlexField\Processor;

FlexField вместо Flexfield

Это может иметь значение для внешних функций, использующих этот класс.

 15
Author: Mario, 2019-10-22 10:13:56

Если вы, как и я, не можете отредактировать файл (потому что наш компакт-диск выйдет из строя), выполните следующие действия:

  1. В корневом каталоге вашего проекта создайте каталог patches/composer
  2. Создайте файл с именем vendor-vertex-compilation-issue.diff
  3. В вашем composer.json добавьте это в список "требуется" "cweagans/composer-patches": "1.6.7"
  4. Все еще в вашем composer.json добавьте это в дополнительные
       "patches": {
           "vertex/module-tax":{
               "MAGETWO: vendor vertex compilation issue": "patches/composer/vendor-vertex-compilation-issue.diff"
           }
       }
  1. Поместите следующее содержимое в файл 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;
  1. выполнить composer install

Это должно установить модуль vertex и применить исправление к модулю, а затем вы можете продолжить компиляцию Magento, как обычно

ОБНОВЛЕНИЕ

Начиная с Magento 2.3.4, налог на вершину/модуль был обновлен до 3.3.03.2.0), проблема устранена, и исправление больше не требуется

 7
Author: Haim, 2020-02-04 14:19:14

Файл Goto:

/vendor/vertex/module-tax/Model/FlexField/Processor/OrderCurrencyGetterProcessor.php

Добавить недостающую строку:

Использовать Вершина\Налог\Модель\Гибкое поле\Процессор\Вычислениеflexfieldпроцессоринтерфейс;

После

Используйте вершину\Налог\Модель\FlexField\flexfieldprocessableattributefactory;

И повторите попытку установки-обновления и повторной компиляции.

Для получения дополнительной информации вы можете проверить модуль di.xml файл для отображения абстрактного интерфейса.

 2
Author: Prateek Karanpuria, 2019-12-20 07:04:34

Если вы не используете модуль 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 вместо его исправления.

 0
Author: Nathaniel Rogers, 2020-05-05 06:42:16