Was ist / bedeutet / bedeutet "Magento \ Framework \ Model \ OrchestratorPool"?

7

Ich fand in di.xmldem diesem Katalog - Modul :

<type name="Magento\Framework\Model\OrchestratorPool">
    <arguments>
        <argument name="operations" xsi:type="array">
            <item name="default" xsi:type="array">
                <item name="read" xsi:type="object">Magento\Framework\Model\Operation\Read</item>
                <item name="create" xsi:type="object">Magento\Framework\Model\Operation\Write\Create</item>
                <item name="update" xsi:type="object">Magento\Framework\Model\Operation\Write\Update</item>
                <item name="delete" xsi:type="object">Magento\Framework\Model\Operation\Write\Delete</item>
            </item>
        </argument>
    </arguments>
</type>

Was tut es? was bedeutet das? Wo wird das verwendet und wofür?

Marius
quelle

Antworten:

6

Diese Klasse ist Teil des neuen Datenbankpersistenz-Frameworks. Auf diese Weise können beliebig implementierte Datenschnittstellen gespeichert und flexibler gestaltet werden, da Sie Ihr Modell nicht mehr erweitern müssen Magento\Framework\Model\AbstractModel.

Im Moment befindet sich das Framework in der Entwicklung, aber Teile davon wurden für eine der Funktionen eingeführt, an denen wir arbeiten. Wir empfehlen, es noch nicht zu verwenden, da es sich erheblich ändern wird. Aber es könnte interessant sein, einen Blick darauf zu werfen.

Die Hauptklasse ist Magento\Framework\Model\EntityManager. EntityManager wird beispielsweise verwendet Magento\Framework\Model\OrchestratorPool, um die Operation für die Entität abzurufen Magento\Framework\Model\Operation\Write\Create. Die Operation verwendet verschiedene Aktionen, um ihre Funktion auszuführen. Einige Aktionen können beispielsweise für die Verwendung von Handlern konfiguriert werden Magento\Framework\Model\Entity\Action\CreateRelation.

Siehe auch di Konfiguration für Magento\Framework\Model\OrchestratorPool, Magento\Framework\Model\Entity\MetadataPoolund Magento\Framework\Model\ResourceModel\Db\Relation\ActionPool.

Beispiele für die Verwendung von Framework finden Sie in Magento\Cms\Model\ResourceModel\Page.

Hoffe das hilft.

Igor Melnykov
quelle
Ich gebe zu, dass es für mich noch nicht 100% sinnvoll ist, aber es sollte ausreichen, um mich anzufangen. Vielen Dank. Eine kleine Nebenfrage. OrchestratorPoolSollte die Deklaration in meiner Frage nicht in einer anderen di.xmlals der im Katalogmodul hinzugefügt werden, da sie allgemein und nicht nur katalogspezifisch ist?
Marius
Ja, es sollte nicht im Katalog sein. Es wird in ein anderes Modul verschoben
Anton Kril
2
Hinweis für sich selbst und alle: In M2.1 wurde dies verschoben app/etc/di.xmlund die Namen der Klassen sind etwas anders: OrchestratorPoolwird jetzt aufgerufen OperationPool.
Jisse Reitsma