Noms de classe 'Void' dans le fournisseur / magento /


9

J'essaye de recompiler en utilisant

configuration de php bin / magento: di: compile

Mais lorsque j'exécute cette commande, j'obtiens:

Erreur fatale: impossible d'utiliser 'Void' comme nom de classe car il est réservé dans /var/www/html/magento/vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/Void.php sur la ligne 9

J'utilise PHP 7.1.0-alpha.

Réponses:



18

Voici comment y remédier:

  1. modifier la vendor/magento/module-sales/etc/webapi.xmlligne 112:

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

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

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

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

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

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

    à

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

  7. Renommer

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

    à

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

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


vous êtes les bienvenus monsieur
Konstantin Gerasimov

dans Magento Enterprise mv vendor / magento / module-récompense / Model / Action / Creditmemo / Void.php vendor / magento / module-récompense / Model / Action / Creditmemo / VoidCreditmemo.php en ligne 8 changer la classe Void en class VoidCreditmemo
marcinsdance

@KonstantinGerasimov, Existe-t-il un correctif disponible pour le M230?
Ravi Dudhara

2

Au lieu de modifier les fichiers principaux du fournisseur magento pour résoudre le problème, il serait plus logique d'utiliser la bonne version php. Selon ce que vous utilisez, il devrait être assez facile de définir une configuration BASH pour un emplacement de bac php particulier.


1

Ce n'est plus un problème pour Magento 2.2 - Magento 2.1 n'était pas compatible PHP7.1.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.