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

  1. Abra el archivo de configuración de OPcache en un editor de texto.

  2. Busque opcache.save_comments y quite el comentario, si es necesario.

  3. Asegúrese de que su valor esté establecido en 1.

  4. Guarde los cambios y salga del editor de texto.

  5. Reinicie el servidor web:

    • Apache, Ubuntu: service apache2 restart
    • Apache, CentOS: service httpd restart
    • nginx, Ubuntu y CentOS: service nginx restart
  6. 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`
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a