Pytania otagowane jako dependency-injection

Oznacza pytania dotyczące wstrzykiwania zależności Magento 2

3
Jaka jest różnica między typem a virtualType
W tym, di.xmlco pochodzi z Magento2, jest węzeł typei węzeł virtualType. Moje pytania brzmią: co to jest virtualTypeiw jakim przypadku należy go użyć type? W niektórych miejscach wygląda jak symboliczny link lub przepisać: <virtualType name="Magento\Core\Model\Session\Storage" type="Magento\Framework\Session\Storage"> Tam gdzie jedna pełna ścieżka zostaje zamieniona na inną, ale w innych miejscach wydaje …

3
Co wyzwala generowanie fabryki w Magento 2
Magento 2 zawiera wiele plików klas, które są wstępnie generowane lub generowane w locie. Oni żyją w var/generated Wygenerowane pliki obejmują klasy fabryczne. Z dokumentacji rozumiem, że programista używa klas fabrycznych do tworzenia obiektów „niewtryskiwalnych”. Obiekt „nienadający się do wstrzyknięcia” to obiekt, którego nie można dodać za pomocą __constructorwstrzykiwania zależności, …

5
Tworzenie wystąpień Pomocników w Magento 2
Najnowsze wersje Magento 2 wyeliminowały Mageklasę. To oznacza, że ​​zgubiliśmy Mage::helpermetodę. Czy istnieje technika zastępcza (fabryka pomocników?) Do tworzenia instancji pomocników w Magento 2? Czy też powinniśmy używać nowej klasy Object manager i po prostu tworzyć instancję pomocnika jako obiekt singleton / buforowany za pomocą get(vs. create)

2
Magento 2: jaki jest parametr konstruktora tablic danych $?
Zauważyłem więc, że w większości modeli i bloków jest to array $data = []ostatni parametr konstruktora . Na przykład \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; $this->categoryRepository = $categoryRepository; $this->urlHelper = …

2
Najlepsze praktyki Magento 2 DI
Powiedzmy, że buduję rozszerzenie Magento 2, które działa ... cóż ... nieważne. Powiedzmy, że robi super niesamowite rzeczy. Chcę jednak upewnić się, że jest on budowany przy użyciu odpowiednich standardów, aby inni programiści mogli go rozszerzyć. Kiedy powinienem używać DI w połączeniu z interfejsami, a kiedy nie? Wyjaśnienie tego jest …


3
Dodanie nowej metody do klasy abstrakcyjnej w Magento 2
Jak powiedział ten wątek: Zastąp klasę abstrakcyjną w Magento 2 w Magento 1 , Mogę po prostu stworzyć zupełnie nową klasę. W Magento 2 musimy używać wtyczek, ale wtyczki pozwalają mi tylko modyfikować istniejące metody. Co muszę zrobić, jeśli chcę dodać nową metodę? Przykład: Ta klasa vendor/magento/module-ui/Component/AbstractComponent.phpma tablicę komponentów: $componentsnie …

1
DI i rozszerzenie bloku w Magento 2
Wydaje mi się, że staram się uchwycić wstrzykiwanie zależności Magento 2 za pomocą bloków, za każdym razem, gdy próbuję rozszerzyć blok, który nie jest \ Magento \ Framework \ View \ Element \ Template, mam błędy. Chcę utworzyć blok, który rozszerza bardzo podstawową klasę bloków Magento \ Theme \ Block …

2
Magento 2: użyj instrukcji a bezpośrednia ścieżka klasy?
Być może brakuje mi punktu, ale po prostu zastanawiam się, dlaczego czasami istnieje instrukcja „use” dla określonej klasy, a czasem nie. Przykład: app\code\Magento\Email\Model\Template.phpmamy na górze pliku: namespace Magento\Email\Model; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\StoreManagerInterface; Następnie w __constructmetodzie mamy następujące parametry: public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\View\DesignInterface $design, \Magento\Framework\Registry $registry, \Magento\Store\Model\App\Emulation $appEmulation, StoreManagerInterface …

3
Jak zastąpić klasę Virtual Type w Magento 2
Jak zastąpić blok VirtualType w Magento 2, chcę zastąpić następujący blok typu wirtualnego własnym blokiem, <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> Więc próbowałem zastąpić go z mojego niestandardowego modułu w di.xmlten sposób, <preference for="Magento\Catalog\Block\Product\ListProduct" type="My\Vendor\Block\Product\ListProductSearch" /> Ale to nie działa. Więc, co jest właściwym sposobem na przesłanianie …

5
Dlaczego nie mogę wstrzyknąć interfejsu ProductRepositoryInterface do Magento 2?
Mam działanie kontrolera, do którego chciałbym wstrzyknąć repozytorium produktów 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; } Bez względu na kolejność, w …

3
Wprowadzanie zależności do CRUD / Modelu abstrakcyjnego Magento 2
Czy możliwe jest wstrzyknięcie zależności do modelu CRUD Magento 2? To jest - Magento 2 ma bazową klasę abstrakcyjną modelu Magento\Framework\Model\AbstractModel. Jeśli chcesz utworzyć prosty obiekt do tworzenia, odczytu, aktualizacji, usuwania modelu, rozszerz tę klasę o własną klasę. class Foo extends Magento\Framework\Model\AbstractModel { } Czy możliwe jest wstrzyknięcie zależności do …

2
Dlaczego niektóre klasy definiują zastrzyki zarówno w swoim konstruktorze, jak i pliku di.xml?
Nie rozumiem, dlaczego w niektórych klasach ich zastrzyki zależności są deklarowane dwukrotnie - raz w di.xmlkonstruktorze konkretnej klasy. Na przykład w Magento\Backend\Model\Urljego di.xmlzdefiniowano następujący zestaw typów dla DI: <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 name="scopeType" xsi:type="const"> Magento\Store\Model\ScopeInterface::SCOPE_STORE </argument> <argument name="backendHelper" …

2
Jak dodać numer śledzenia do bieżącej wysyłki zamówienia w Magento 2?
Znalazłem przykładowe kody dla Magento 1.x. Ale nie mam pojęcia, jak to zrobić w Magento 2. Czy ktoś może opisać, jak zaimplementować to za pomocą Dependency Injection (DI) ? Dzięki. $trackingDetail = array( 'carrier_code' => 'ups', 'title' => 'United Parcel Service', 'number' => 'TORD23254WERZXd3', // Replace with your tracking number …

1
Magento 2: Virtual Type Naming Convention
Data: 1 czerwca 2015 r. (Biorąc pod uwagę zmieniający się charakter Magento 2) W Magento 2 możesz skonfigurować „typ wirtualny” w di.xmlpliku konfiguracyjnym modułu . Te typy wirtualne umożliwiają zmianę argumentów konkretnej wstrzykiwanej zależności. W podstawowym kodzie Magento 2 wydają się istnieć dwie konwencje nazewnictwa dla typów wirtualnych. W pierwszym …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.