Als «dependency-injection» getaggte Fragen

Bezeichnet Fragen zur Magento 2-Abhängigkeitsinjektion

3
Was ist der Unterschied zwischen type und virtualType?
Im di.xmlLieferumfang von Magento2 gibt es einen Knoten typeund einen Knoten virtualType. Meine Frage ist, was ist das virtualTypeund in welchem ​​Fall sollte es stattdessen verwendet werden type? An einigen Stellen sieht es aus wie ein symbolischer Link oder ein Umschreiben: <virtualType name="Magento\Core\Model\Session\Storage" type="Magento\Framework\Session\Storage"> Wenn ein vollständiger Pfad in einen …

3
Was löst die Erzeugung einer Fabrik in Magento 2
Magento 2 enthält eine Reihe von Klassendateien, die entweder vorgeneriert oder sofort generiert werden. Sie leben in var/generated Diese generierten Dateien enthalten Factory-Klassen. Aus der Dokumentation geht hervor, dass ein Programmierer Factory-Klassen verwendet, um "nicht injizierbare" Objekte zu instanziieren. Ein "nicht injizierbares" Objekt ist ein Objekt, das nicht über die …

5
Instanziieren von Helfern in Magento 2
Die neuesten Builds von Magento 2 haben die MageKlasse abgeschafft . Das heißt, wir haben die Mage::helperMethode verloren. Gibt es eine Ersatztechnik (Helferfactory?) Zum Instanziieren von Helfern in Magento 2? Oder es wird erwartet, dass wir die neue Object Manager-Klasse verwenden und den Helfer einfach als Singleton / Cache-Objekt mit …

2
Magento 2: Was ist der $ data array constructor Parameter?
Daher habe ich festgestellt, dass in den meisten Modellen und Blöcken dies array $data = []als letzter Parameter des Konstruktors angegeben ist . Beispielsweise \Magento\Catalog\Block\Product\ListProduct public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Data\Helper\PostHelper $postDataHelper, \Magento\Catalog\Model\Layer\Resolver $layerResolver, CategoryRepositoryInterface $categoryRepository, \Magento\Framework\Url\Helper\Data $urlHelper, array $data = [] ) { $this->_catalogLayer = $layerResolver->get(); $this->_postDataHelper = $postDataHelper; …

2
Best Practices für Magento 2 DI
Angenommen, ich erstelle eine Magento 2-Erweiterung, die ... nun ja ... nicht wichtig ist. Sagen wir, es macht super tolle Sachen. Aber ich möchte sicherstellen, dass dies mit den richtigen Standards erstellt wird, damit andere Entwickler es erweitern können. Wann sollte ich die DI in Kombination mit Schnittstellen verwenden und …

4
Magento 2: Praktische Erklärung einer Proxy-Klasse
Ich weiß theoretisch, was eine Proxy-Klasse in Magento 2 ist. Ich habe den großartigen Alan Storm-Artikel darüber gelesen und verstehe vollkommen, wie diese Klassen generiert werden. Und ich weiß nicht, ob es daran liegt, dass ich kein englischer Muttersprachler bin oder ob Alan in seinen Erklärungen sehr abstrakte Nebenklassen verwendet. …


1
DI & Erweitern eines Blocks in Magento 2
Ich habe anscheinend Probleme, die Magento 2-Abhängigkeitsinjektion mit Blöcken zu erfassen, und jedes Mal, wenn ich versuche, einen Block zu erweitern, der nicht \ Magento \ Framework \ View \ Element \ Template ist, treten Fehler auf. Ich möchte einen Block erstellen, der die grundlegende Blockklasse von Magento \ Theme …

2
Magento 2: use statement versus direct class path?
Vielleicht fehlt mir ein Punkt, aber ich frage mich nur, warum es manchmal eine "use" -Anweisung für eine bestimmte Klasse gibt und manchmal nicht. Beispiel: app\code\Magento\Email\Model\Template.phpWir haben am Anfang der Datei: namespace Magento\Email\Model; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\StoreManagerInterface; Dann __constructhaben wir in der Methode die folgenden Parameter: public function __construct( \Magento\Framework\Model\Context …

3
So überschreiben Sie die Virtual Type-Klasse in Magento 2
So überschreiben Sie den VirtualType-Block in Magento 2: Ich möchte folgenden virtuellen Typblock mit meinem eigenen Block überschreiben. <virtualType name="Magento\CatalogSearch\Block\SearchResult\ListProduct" type="Magento\Catalog\Block\Product\ListProduct"> <arguments> <argument name="catalogLayer" xsi:type="object">Magento\Catalog\Model\Layer\Search</argument> </arguments> </virtualType> Also habe ich versucht, es von meinem benutzerdefinierten Modul di.xmlwie folgt zu überschreiben , <preference for="Magento\Catalog\Block\Product\ListProduct" type="My\Vendor\Block\Product\ListProductSearch" /> Aber es funktioniert nicht. Also, …

5
Warum kann ich das ProductRepositoryInterface in Magento 2 nicht injizieren?
Ich habe eine Controller-Aktion, in die ich das Produkt-Repository einfügen möchte namespace Nosto\Tagging\Controller\Export; use Magento\Catalog\Api\ProductRepositoryInterface; use Magento\Store\Model\StoreManagerInterface; use Magento\Backend\App\Action; use Magento\Framework\App\Action\Context; class Test extends Action { private $_productRepository; public function __construct( Context $context, StoreManagerInterface $storeManager, ProductRepositoryInterface $productRepository ) { parent::__construct($context); $this->_storeManager = $storeManager; $this->_productRepository = $productRepository; } Unabhängig von der …

3
Injizieren von Abhängigkeiten in ein Magento 2 CRUD / Abstract-Modell
Ist es möglich, eine Abhängigkeit in ein Magento 2 CRUD-Modell zu injizieren? Das ist - Magento 2 hat eine Basis abstrakte Modellklasse: Magento\Framework\Model\AbstractModel. Wenn Sie ein einfaches Modellobjekt erstellen, lesen, aktualisieren, löschen möchten, erweitern Sie diese Klasse mit Ihrer eigenen Klasse. class Foo extends Magento\Framework\Model\AbstractModel { } Ist es möglich, …

2
Warum definieren einige Klassen Injektionen sowohl in ihrem Konstruktor als auch in di.xml?
Ich verstehe nicht, warum in einigen Klassen ihre Abhängigkeitsinjektionen zweimal deklariert werden - einmal im di.xmlund im Konstruktor der konkreten Klasse. Zum Beispiel in Magento\Backend\Model\Url, der di.xmlhat diesen Satz von Typen für DI definiert: <type name="Magento\Backend\Model\Url"> <arguments> <argument name="scopeResolver" xsi:type="object"> Magento\Backend\Model\Url\ScopeResolver</argument> <argument name="authSession" xsi:type="object"> Magento\Backend\Model\Auth\Session\Proxy</argument> <argument name="formKey" xsi:type="object"> Magento\Framework\Data\Form\FormKey\Proxy</argument> <argument …

2
Wie füge ich der aktuellen Bestellsendung in Magento 2 eine Sendungsverfolgungsnummer hinzu?
Ich habe Beispielcodes für Magento 1.x gefunden. Aber ich habe keine Ahnung, wie das auf Magento 2 geht. Kann jemand beschreiben, wie dies mit Dependency Injection (DI) implementiert wird ? Vielen Dank. $trackingDetail = array( 'carrier_code' => 'ups', 'title' => 'United Parcel Service', 'number' => 'TORD23254WERZXd3', // Replace with your …

1
Magento 2: Namenskonvention für virtuelle Typen
Datum: 1. Juni 2015 (angesichts der sich ändernden Natur von Magento 2) In Magento 2 können Sie einen "virtuellen Typ" in der di.xmlKonfigurationsdatei eines Moduls konfigurieren. Mit diesen virtuellen Typen können Sie die Argumente einer bestimmten injizierten Abhängigkeit ändern. Im Kerncode von Magento 2 scheint es zwei Namenskonventionen für virtuelle …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.