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_comments is 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
-
Open het OPcache-configuratiebestand in een teksteditor.
-
Zoek
opcache.save_commentsen verwijder indien nodig de commentaarmarkering. -
Controleer of de waarde is ingesteld op
1. -
Sla de wijzigingen op en sluit de teksteditor af.
-
Start de webserver opnieuw:
- Apache, Ubuntu:
service apache2 restart - Apache, CentOS:
service httpd restart - nginx, Ubuntu en CentOS:
service nginx restart
- Apache, Ubuntu:
-
Regenereer DI-configuratie en alle ontbrekende klassen die automatisch kunnen worden gegenereerd:
$ bin/magento setup:di:compile`