Een ongeldige verschuivingsfout oplossen

Dit artikel biedt een oplossing voor het geval dat u in Adobe Commerce 2.1 of hoger een fout met betrekking tot een ongeldige offset ontvangt wanneer u een nieuw product maakt in Commerce Admin.

Bij het maken van een nieuw product in Commerce Admin in Adobe Commerce 2.1 of hoger kan de volgende fout worden weergegeven:

Warning: Illegal string offset 'is_in_stock' in [...]/vendor/
magento/module-catalog-inventory/Ui/DataProvider/Product/Form/
Modifier/AdvancedInventory.php on line 87

Detail

Adobe Commerce 2.1 en hoger gebruiken PHP-codeopmerkingen in de getDocComment validatieaanroep in de getExtensionAttributes-methode in Magento\Framework\Api\ExtensionAttributesFactory.php .

Als u de PHP OPcache (die we aanbevelen) hebt ingeschakeld, wordt deze fout weergegeven omdat standaard de OPcache-instelling opcache.save_commentsis uitgeschakeld.

Workaround

Zoek de configuratie-instellingen voor OPcache op en schakel opcache.save_comments als volgt in om dit probleem op te lossen:

Stap 1: Zoek uw configuratie OPcache

U kunt als volgt de configuratie-instellingen voor OPcache vinden:

PHP OPcache-instellingen bevinden zich doorgaans in php.ini of opcache.ini . De locatie kan afhankelijk zijn van uw besturingssysteem en PHP-versie. Het OPcache-configuratiebestand heeft mogelijk een [opcache] -sectie of instellingen, zoals opcache.enable .

Gebruik de volgende richtlijnen om het te vinden:

  • Apache-webserver:

Voor Ubuntu met Apache bevinden de OPcache-instellingen zich doorgaans in php.ini .

Voor CentOS met Apache of nginx bevinden de OPcache-instellingen zich doorgaans in /etc/php.d/opcache.ini .

Als niet, gebruik het volgende bevel om van het de plaats te bepalen:

    $ sudo find / -name 'opcache.ini'
  • nginx webserver met PHP-FPM: /etc/php5/fpm/php.ini .

Als u meer dan één opcache.ini hebt, wijzigt u ze allemaal.

Stap 2: Inschakelen opcache.save_comments

  1. Open het OPcache-configuratiebestand in een teksteditor.

  2. Zoek opcache.save_comments en verwijder indien nodig de commentaarmarkering.

  3. Controleer of de waarde is ingesteld op 1 .

  4. Sla de wijzigingen op en sluit de teksteditor af.

  5. Start de webserver opnieuw:

    • Apache, Ubuntu: service apache2 restart
    • Apache, CentOS: service httpd restart
    • nginx, Ubuntu en CentOS: service nginx restart
  6. Regenereer DI-configuratie en alle ontbrekende klassen die automatisch kunnen worden gegenereerd:

    $ bin/magento setup:di:compile`
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a