質問

続いていますオブジェクトマネージャの引数の置き換えチュートリアル。可能なdi.xmlの1つは

のように見えます
<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>
.

CommandListのConstructor引数commands(アレイタイプのもの)に1つの新しいアイテム(コマンド)を追加する。

モジュール内の任意の場所に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 \ TutorialObjectManageRargumentsの後に行く、その後、値を取得する引数として:

  <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