Noções básicas sobre substituição de argumentos do gerenciador de objetos usando di.xml para comandos

magento.stackexchange https://magento.stackexchange.com/questions/100461

  •  28-09-2020
  •  | 
  •  

Pergunta

estou seguindo substituição de argumento do gerenciador de objetos tutorial.Um dos possíveis di.xml se parece com

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

O que significa no modelo Exampleconstrutor da classe, substitua o valor (qualquer antigo) do argumento $scaler1 com bar.

Enquanto para comandos parece

<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>

Que diz adicionar 1 novo item (comando) em CommandListargumento do construtor commands(que é do tipo array).

Não vejo uso do nome testbedCommand em qualquer lugar do módulo.Qual será seu uso?Deveria ser único?

Foi útil?

Solução

Um nome de item não é usado em Magento\Framework\Console\CommandList.Se você olhar para esta classe, verá que apenas valores são usados, no entanto, chaves de array também estão disponíveis.

Se você definir em seu módulo o mesmo tipo e com o mesmo nome de item de argumento:

<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 seu módulo vai depois de Pulsestorm utorialObjectManagerArguments, então como argumento você obterá seu valor:

  <argument name="commands" xsi:type="array">
                <item name="testbedCommand" xsi:type="object">Your\Module\Command\Testbed</item>
  </argument>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top