Domanda

Sto seguendo Object Manager Argomento Sostituzione Tutorial.Uno dei possibili di.xml sembra

<type name="Pulsestorm\TutorialObjectManagerArguments\Model\Example">
    <arguments>
        <argument name="scaler1" xsi:type="string">bar</argument>
    </arguments>
</type>
.

Il che significa nel modello del costruttore della classe di Classe Model Example, sostituire (qualsiasi altro vecchio) del valore dell'argomento $scaler1 con bar.

considerando che per i comandi sembra

<type name="Magento\Framework\Console\CommandList">
    <arguments>
        <argument name="commands" xsi:type="array">
            <item name="testbedCommand" xsi:type="object">Pulsestorm\TutorialObjectManagerArguments\Command\Testbed</item>
        </argument>
    </arguments>
</type>
.

che dice Aggiungi 1 nuovo elemento (comando) nell'argomento del costruttore di CommandList commands (che è di tipo array).

Non vedo l'uso del nome testbedCommand ovunque nel modulo. Cosa sarà l'utilizzo?Dovrebbe essere unico?

È stato utile?

Soluzione

Un nome dell'oggetto non è utilizzato in Commandlist di Magento \ Framework \ Console. Se si guarda in questa classe, puoi vedere, che solo i valori sono utilizzati, tuttavia sono disponibili anche le chiavi dell'array.

Se si definisce nel modulo lo stesso tipo e con lo stesso argomento Nome elemento:

<type name="Magento\Framework\Console\CommandList">
    <arguments>
        <argument name="commands" xsi:type="array">
            <item name="testbedCommand" xsi:type="object">Your\Module\Command\Testbed</item>
        </argument>
    </arguments>
</type>
.

E il tuo modulo diventa dopo Pulsestorm \ TutorialObjectManageRaRagumenti, quindi come argomento otterrai il tuo valore:

  <argument name="commands" xsi:type="array">
                <item name="testbedCommand" xsi:type="object">Your\Module\Command\Testbed</item>
  </argument>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top