Classnames 'Void' all'interno del fornitore / magento /


9

Sto cercando di ricompilare usando

php bin / magento setup: di: compilare

Ma quando eseguo questo comando, ottengo:

Errore irreversibile: impossibile utilizzare "Void" come nome della classe poiché è riservato in /var/www/html/magento/vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/Void.php sulla riga 9

Sto eseguendo PHP 7.1.0-alpha.

Risposte:



18

Ecco come risolverlo:

  1. modifica vendor/magento/module-sales/etc/webapi.xmlriga 112:

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

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

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

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

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

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

    per

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

  7. rinominare

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

    per

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

tratto da https://mage2.pro/t/topic/2433/2


prego, signore
Konstantin Gerasimov,

in Magento Enterprise venditore mv / magento / modulo-premio / Modello / Azione / Creditmemo / Void.php fornitore / magento / modulo-premio / Modello / Azione / Creditmemo / VoidCreditmemo.php in linea 8 cambia classe Void in classe VoidCreditmemo
marcinsdance

@KonstantinGerasimov, esiste qualche patch disponibile per M230?
Ravi Dudhara,

2

Invece di modificare i file principali del fornitore magento per risolvere il problema, sarebbe più sensato utilizzare la versione php corretta. A seconda di ciò che stai usando, dovrebbe essere abbastanza facile impostare una configurazione BASH per una particolare posizione del bin php.


1

Questo non è più un problema per Magento 2.2 - Magento 2.1 non era compatibile con PHP7.1.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.