Comprender el reemplazo de argumentos del administrador de objetos usando di.xml para comandos

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

  •  28-09-2020
  •  | 
  •  

Pregunta

estoy siguiendo reemplazo de argumentos del administrador de objetos tutorial.Uno de los posibles di.xml parece

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

Lo que significa en el modelo Exampleconstructor de la clase, reemplaza (cualquiera que sea el antiguo) valor del argumento $scaler1 con bar.

Mientras que para los 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 dice agregar 1 nuevo elemento (comando) en CommandListargumento del constructor commands(que es de tipo matriz).

No veo el uso del nombre. testbedCommand en cualquier parte del módulo.¿Cuál será su uso?¿Debería ser único?

¿Fue útil?

Solución

Un nombre de elemento no se utiliza en Magento\Framework\Console\CommandList.Si observa esta clase, puede ver que solo se utilizan valores; sin embargo, las claves de matriz también están disponibles.

Si define en su módulo el mismo tipo y con el mismo nombre de elemento 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>

y su módulo va después de Pulsestorm utorialObjectManagerArguments, luego, como argumento, obtendrá su valor:

  <argument name="commands" xsi:type="array">
                <item name="testbedCommand" xsi:type="object">Your\Module\Command\Testbed</item>
  </argument>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top