Nombres de clase 'nulo' dentro de proveedor / magento /


9

Estoy tratando de volver a compilar usando

php bin / magento setup: di: compile

Pero cuando ejecuto este comando, obtengo:

Error grave: no se puede usar 'Void' como nombre de clase, ya que está reservado en /var/www/html/magento/vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/Void.php en la línea 9

Estoy ejecutando PHP 7.1.0-alpha.

Respuestas:



18

Aquí se explica cómo solucionarlo:

  1. editar vendor/magento/module-sales/etc/webapi.xmllínea 112:

    - <route url="/V1/invoices/:id/void" method="POST">
    + <route url="/V1/invoices/:id/voidInvoice" method="POST">
    
  2. editar vendor/magento/module-sales/Block/Adminhtml/Order/Invoice/View.phplínea 242:

    - return $this->getUrl('sales/*/void', ['invoice_id' => $this->getInvoice()->getId()]);
    + return $this->getUrl('sales/*/voidInvoice', ['invoice_id' => $this->getInvoice()->getId()]);
    
  3. editar vendor/magento/module-sales/Block/Adminhtml/Order/Creditmemo/View.phplínea 183:

    - return $this->getUrl('sales/*/void', ['creditmemo_id' => $this->getCreditmemo()->getId()]);
    + return $this->getUrl('sales/*/voidCreditmemo', ['creditmemo_id' => $this->getCreditmemo()->getId()]);
    
  4. editar vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/Void.phplínea 9:

    - class Void extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
    + class VoidInvoice extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
    
  5. editar vendor/magento/module-sales/Controller/Adminhtml/Order/Creditmemo/Void.phplínea 10:

    - class Void extends \Magento\Backend\App\Action
    + class VoidCreditmemo extends \Magento\Backend\App\Action
    
  6. rebautizar

    vendor/magento/module-sales/Controller/Adminhtml/Order/Creditmemo/Void.php

    a

    vendor/magento/module-sales/Controller/Adminhtml/Order/Creditmemo/VoidCreditmemo.php

  7. rebautizar

    vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/Void.php

    a

    vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/VoidInvoice.php

tomado de https://mage2.pro/t/topic/2433/2


de nada señor
Konstantin Gerasimov

en Magento Enterprise mv vendor / magento / module-recompensa / Modelo / Acción / Creditmemo / Void.php vendedor / magento / module-recompensa / Modelo / Acción / Creditmemo / VoidCreditmemo.php en línea 8 cambiar clase Void a clase
VoidCreditmemo

@ KonstantinGerasimov, ¿Hay algún parche disponible para M230?
Ravi Dudhara

2

En lugar de modificar los archivos principales del proveedor de magento para resolver el problema, tendría más sentido usar la versión de php correcta. Dependiendo de lo que esté utilizando, debería ser bastante fácil establecer una configuración de BASH para una ubicación particular de bin php.


1

Esto ya no es un problema para Magento 2.2: Magento 2.1 no era compatible con PHP7.1.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.