Ich benutze Magento 2.2.5
Schauen Sie sich die Datei an
Hersteller \ magento \ module-sales \ etc \ di.xml
<type name="Magento\Payment\Model\Checks\SpecificationFactory">
<arguments>
<argument name="mapping" xsi:type="array">
<item name="country" xsi:type="object">Magento\Payment\Model\Checks\CanUseForCountry</item>
<item name="currency" xsi:type="object">Magento\Payment\Model\Checks\CanUseForCurrency</item>
<item name="checkout" xsi:type="object">Magento\Payment\Model\Checks\CanUseCheckout</item>
<item name="internal" xsi:type="object">Magento\Payment\Model\Checks\CanUseInternal</item>
<item name="total" xsi:type="object">Magento\Payment\Model\Checks\TotalMinMax</item>
<item name="zero_total" xsi:type="object">Magento\Payment\Model\Checks\ZeroTotal</item>
</argument>
</arguments>
</type>
Es gibt einen Knoten mit dem Namen " Mapping ". Hat jemand eine Idee über seine Verwendung?
Ich habe die Frage Magento 2 gelesen - In welchem Fall verwende ich di.xml und wie verwende ich di.xml für ein Modul? und Alan Sturms Artikel "Magento 2 Object Manager Argument Replacement"
Vielen Dank
quelle
mapping
Knoten verwenden, wird hier in der jeweiligen Typklasse ein Array-Parameter hinzugefügt: 'Magento \ Payment \ Model \ Checks \ SpecificationFactory'.mapping
Mehrfachvalidierung für verschiedene Module mit abgelegt.
Überprüfen Sie nun die SpecificationFactory- Datei auf Geschäftslogik.
Es validiert das Mapping-Datenmodul weise.
quelle
Fazit
Das Gespräch mit @Keyur Shah und der Vorschlag von @Jignesh Khunt kommen zu dem Schluss, dass Sie hier Konfigurationen hinzufügen
di.xml
und auf Typklassen zugreifen könnenMagento\Payment\Model\Checks\SpecificationFactory
. Im letzten Parameterarray$mapping
im folgenden Dateikonstruktor .Der Argumentknoten (hier " $ Mapping ") muss eine Mitgliedsvariable der Typklasse (
Magento\Payment\Model\Checks\SpecificationFactory
) sein.Dann sind die von Ihnen übergebenen Daten
di.xml
in Ihrer Factory-Klasse zugänglich und verwendbar, und Sie können die Logik anpassen. Ich habe die dynamische Klasse mithilfe dieser Funktion anhand der im $ Mapping-Array verfügbaren Daten (ohne Umschreiben oder Plugin / Prefrence) initialisiert.quelle