Résoudre une erreur de décalage non autorisée
Cet article fournit une solution pour lorsque, dans Adobe Commerce 2.1 ou version ultérieure, vous recevez une erreur de décalage illégal lors de la création d’un produit dans Commerce Admin.
Dans Adobe Commerce 2.1 ou version ultérieure, lors de la création d’un produit dans Commerce Admin, l’erreur suivante peut s’afficher :
Warning: Illegal string offset 'is_in_stock' in [...]/vendor/
magento/module-catalog-inventory/Ui/DataProvider/Product/Form/
Modifier/AdvancedInventory.php on line 87
Détail
Adobe Commerce 2.1 et versions ultérieures utilisent des commentaires de code PHP dans l’appel de validation getDocComment
de la méthode getExtensionAttributes
dans Magento\Framework\Api\ExtensionAttributesFactory.php
.
Si vous avez activé le OPcache PHP (que nous recommandons), cette erreur s’affiche car, par défaut, le paramètre OPcache opcache.save_comments
est désactivé.
Solution
Pour résoudre le problème, localisez vos paramètres de configuration OPcache et activez opcache.save_comments
comme suit :
Étape 1 : Localisation de la configuration OPcache
Pour rechercher les paramètres de configuration du cache d’OP :
Les paramètres du OPcache PHP sont généralement situés dans php.ini
ou opcache.ini
. L’emplacement peut dépendre de votre système d’exploitation et de la version PHP. Le fichier de configuration OPcache peut comporter une section [opcache]
ou des paramètres tels que opcache.enable
.
Suivez les instructions ci-dessous pour le trouver :
- Serveur web Apache :
Pour Ubuntu avec Apache, les paramètres OPcache se trouvent généralement dans php.ini
.
Pour CentOS avec Apache ou nginx, les paramètres OPcache se trouvent généralement dans /etc/php.d/opcache.ini
.
Dans le cas contraire, utilisez la commande suivante pour la localiser :
$ sudo find / -name 'opcache.ini'
- Serveur web nginx avec PHP-FPM :
/etc/php5/fpm/php.ini
.
Si vous avez plusieurs opcache.ini
, modifiez-les tous.
Étape 2 : Activer opcache.save_comments
-
Ouvrez votre fichier de configuration OPcache dans un éditeur de texte.
-
Localisez
opcache.save_comments
et annulez la mise en commentaire, si nécessaire. -
Assurez-vous que sa valeur est définie sur
1
. -
Enregistrez vos modifications et quittez l’éditeur de texte.
-
Redémarrez votre serveur web :
- Apache, Ubuntu :
service apache2 restart
- Apache, CentOS :
service httpd restart
- nginx, Ubuntu et CentOS :
service nginx restart
- Apache, Ubuntu :
-
Régénérer la configuration de l’ID et toutes les classes manquantes qui peuvent être générées automatiquement :
$ bin/magento setup:di:compile`