Uncaught Error: не удалось создать экземпляр интерфейса IndexTableRowSizeEstimatorInterface - PullRequest
0 голосов
/ 23 января 2019

Я обновляю наш magento 2.1.9 до magento 2.2.7.При переиндексации catalog_category_product выдается эта ошибка:

[23-Jan-2019 09:49:39 UTC] PHP Fatal error:  Uncaught Error: Cannot instantiate interface Magento\Framework\Indexer\IndexTableRowSizeEstimatorInterface in /home/don/Web/fabelio22/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:111
Stack trace:
#0 /home/don/Web/fabelio22/vendor/magento/framework/ObjectManager/Factory/Compiled.php(108): Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject('Magento\\Framewo...', Array)
#1 /home/don/Web/fabelio22/vendor/magento/framework/ObjectManager/Factory/Compiled.php(150): Magento\Framework\ObjectManager\Factory\Compiled->create('Magento\\Framewo...')
#2 /home/don/Web/fabelio22/vendor/magento/framework/ObjectManager/Factory/Compiled.php(79): Magento\Framework\ObjectManager\Factory\Compiled->get('Magento\\Framewo...')
#3 /home/don/Web/fabelio22/vendor/magento/framework/ObjectManager/ObjectManager.php(70): Magento\Framework\ObjectManager\Factory\Compiled->create('Magento\\Framewo...')
#4 /home/don/Web/fabelio22/vendor/magento/module-catalog/Model/Indexer/Category/Product/Action/Full.ph in /home/don/Web/fabelio22/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 111

Файл di.xml в Magento_Catalog имеет значение

<type name="Magento\Catalog\Model\Indexer\Category\Product\Action\Full">
   <arguments>
      <argument name="batchRowsCount" xsi:type="number">100000</argument>
      <argument name="batchSizeManagement" xsi:type="object">Magento\Catalog\Model\Indexer\CategoryProductBatchSize</argument>
   </arguments>
</type>
<virtualType name="Magento\Catalog\Model\Indexer\CategoryProductBatchSize" type="Magento\Framework\Indexer\BatchSizeManagement">
   <arguments>
      <argument name="rowSizeEstimator" xsi:type="object">Magento\Catalog\Model\Indexer\Category\Product\RowSizeEstimator</argument>
   </arguments>
</virtualType>

Но $ rowSizeEstimator не вводится с правильным классом. Он пытается создать экземпляр \Вместо этого Magento \ Framework \ Indexer \ IndexTableRowSizeEstimatorInterface.Генерируемый / metadata / global.php генерируется, но он как Magento игнорирует скомпилированный файл di.

1 Ответ

0 голосов
/ 24 января 2019

Попробуйте очистить кеш и каталоги генерации.

  1. Очистить var/generation
  2. Очистить var/cache
  3. Выполнить bin/magento setup:upgrade и bin/magento setup:di:compile

Примечание: Если вы используете redis для кэширования, вам также следует рассмотреть возможность очистки кэша redis.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...