Resolución de un error de desplazamiento no válido
Este artículo proporciona una solución para los casos en los que, en Adobe Commerce 2.1 o posterior, reciba un error Resolver un desplazamiento no válido al crear un nuevo producto en el administrador de Commerce.
En Adobe Commerce 2.1 o posterior, al crear un nuevo producto en el administrador de Commerce, puede aparecer el siguiente error:
Warning: Illegal string offset 'is_in_stock' in [...]/vendor/
magento/module-catalog-inventory/Ui/DataProvider/Product/Form/
Modifier/AdvancedInventory.php on line 87
Detalle
Adobe Commerce 2.1 y versiones posteriores utilizan comentarios de código PHP en la llamada de validación getDocComment
en el método getExtensionAttributes
en Magento\Framework\Api\ExtensionAttributesFactory.php
.
Si habilitó la OPcache de PHP (que recomendamos), se muestra este error porque, de forma predeterminada, la configuración de OPcache opcache.save_comments
está deshabilitada.
Solución
Para resolver el problema, busque las opciones de configuración de OPcache y habilite opcache.save_comments
de la siguiente manera:
Paso 1: Localice la configuración de OPcache
Para buscar los valores de configuración de OPcache:
La configuración de OPcache de PHP se encuentra generalmente en php.ini
o opcache.ini
. La ubicación puede depender de su sistema operativo y versión de PHP. El archivo de configuración de OPcache puede tener una sección [opcache]
o valores como opcache.enable
.
Siga estas directrices para encontrarlo:
- Servidor web Apache:
Para Ubuntu con Apache, la configuración de OPcache generalmente se encuentra en php.ini
.
Para CentOS con Apache o nginx, la configuración de OPcache generalmente se encuentra en /etc/php.d/opcache.ini
.
Si no es así, utilice el siguiente comando para localizarlo:
$ sudo find / -name 'opcache.ini'
- Servidor web nginx con PHP-FPM:
/etc/php5/fpm/php.ini
.
Si tiene más de un(a) opcache.ini
, modifíquelos(as) todos(as).
Paso 2: Habilitar opcache.save_comments
-
Abra el archivo de configuración de OPcache en un editor de texto.
-
Busque
opcache.save_comments
y quite el comentario, si es necesario. -
Asegúrese de que su valor esté establecido en
1
. -
Guarde los cambios y salga del editor de texto.
-
Reinicie el servidor web:
- Apache, Ubuntu:
service apache2 restart
- Apache, CentOS:
service httpd restart
- nginx, Ubuntu y CentOS:
service nginx restart
- Apache, Ubuntu:
-
Volver a generar la configuración de ID y todas las clases que faltan que se pueden generar automáticamente:
$ bin/magento setup:di:compile`