Понимание замены аргумента диспетчера объектов с помощью di.xml для команд

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

  •  28-09-2020
  •  | 
  •  

Вопрос

Я следую за тобой замена аргумента диспетчера объектов руководство.Один из возможных di.xml выглядит как

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

Что означает в модели Exampleконструктор класса, заменяющий (любое старое) значение аргумента $scaler1 с bar.

Принимая во внимание, что для команд это выглядит как

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

В котором говорится добавить 1 новый элемент (команду) в CommandListаргумент конструктора commands(который имеет тип массива).

Я не вижу смысла в этом названии testbedCommand в любом месте модуля.Каково будет его использование?Должно ли оно быть уникальным?

Это было полезно?

Решение

Имя элемента не используется в Magento\Framework\Console\CommandList.Если вы заглянете в этот класс, то увидите, что используются только значения, однако ключи массива также доступны.

Если вы определяете в своем модуле элемент того же типа и с тем же именем аргумента:

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

и ваш модуль идет после Pulsestorm utorialObjectManagerArguments, тогда в качестве аргумента вы получите свое значение:

  <argument name="commands" xsi:type="array">
                <item name="testbedCommand" xsi:type="object">Your\Module\Command\Testbed</item>
  </argument>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top