Запитання з тегом «dependency-injection»

Позначає питання щодо введення залежної від Magento 2

3
Яка різниця між типом і virtualType
У тому, di.xmlщо поставляється з Magento2, є вузол typeі вузол virtualType. Мої запитання: що це таке, virtualTypeі в якому випадку його слід використовувати замість type? У деяких місцях це виглядає як символічне посилання або переписати: <virtualType name="Magento\Core\Model\Session\Storage" type="Magento\Framework\Session\Storage"> Там, де один повний шлях змінюється на інший, але в інших місцях …

3
Що запускає покоління фабрики в Magento 2
Magento 2 містить ряд файлів класу, які або попередньо згенеровані, або генеруються під час руху. Вони живуть в var/generated Ці створені файли включають фабричні класи. З документації я розумію, що програміст використовує фабричні класи для інстанції "неін'єкційних" об'єктів. "Неін'єкційний" об'єкт - це об'єкт, який не можна додати за допомогою __constructorін'єкції …

5
Моментальні помічники в Magento 2
Останні версії Magento 2 покінчили з Mageкласом. Це означає, що ми втратили Mage::helperметод. Чи існує техніка заміни (фабрика помічників?) Для інстанції помічників у Magento 2? Або ми очікуємо, що ми будемо використовувати новий клас диспетчера об'єктів і просто інстанціювати помічник як сингтон / кешований об'єкт з get(проти create)

2
Magento 2: що таке параметр конструктора масиву $ data?
Тому я помітив, що в більшості моделей і блоків це array $data = []є останнім параметром конструктора . Наприклад \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
Передовий досвід Magento 2 DI
Скажімо, я будую розширення Magento 2, яке робить .... ну ... не важливо. Скажімо, це робить надзвичайно чудові речі. Але я хочу переконатися, що це побудовано за допомогою відповідних стандартів, щоб інші розробники могли це розширити. Коли я повинен використовувати DI в поєднанні з інтерфейсами, а коли не слід? Щоб …

4
Magento 2: практичне пояснення, що таке клас проксі?
Отже, я теоретично знаю, що таке клас проксі в Magento 2. Я прочитав про це дивовижну статтю про Алана Шторма, і я повністю розумію, як створюються ці класи. Однак я не знаю, чи це тому, що я не є носієм англійської мови, чи якщо в поясненнях Алана використовуються неосновні класи, …

3
Додавання нового методу до абстрактного класу в Magento 2
Як сказано у цій темі: Замініть абстрактний клас у Magento 2 у Magento 1 , Я просто можу створити абсолютно новий клас. У Magento 2 нам потрібно використовувати плагіни, але плагіни дозволяють мені змінювати існуючі методи. Що мені робити, якщо я хочу додати новий метод? Приклад: Цей клас vendor/magento/module-ui/Component/AbstractComponent.phpмає масив …

1
DI & розширення блоку на Magento 2
Мені здається, що я намагаюся зрозуміти введення залежності Magento 2 блоками щоразу, коли я намагаюся розширити блок, який не є \ Magento \ Framework \ View \ Element \ Template, я стикаюся з помилками. Я хочу створити блок, який розширює самий базовий клас класу Magento \ Theme \ Block \ …

2
Magento 2: використовувати оператор проти прямого шляху до класу?
Можливо, мені не вистачає пункту, але мені просто цікаво, чому іноді є вираз "використання" для конкретного класу, а іноді ми цього не робимо. Приклад: app\code\Magento\Email\Model\Template.phpми маємо у верхній частині файлу: namespace Magento\Email\Model; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\StoreManagerInterface; Тоді в __constructметоді у нас є такі параметри: public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\View\DesignInterface …

3
Як перекрити клас Virtual Type у Magento 2
Як замінити блок VirtualType в Magento 2, я хочу замінити наступний блок віртуального типу власним блоком, <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> Тож я спробував її замінити зі свого власного модуля, di.xmlяк це, <preference for="Magento\Catalog\Block\Product\ListProduct" type="My\Vendor\Block\Product\ListProductSearch" /> Але це не працює. Отже, що є правильним способом переосмислення …

5
Чому я не можу ввести інтерфейс ProductRepositoryInterface в Magento 2?
У мене є дія контролера, в яку я хотів би ввести продукт-сховище 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; } Незалежно від …

3
Введення залежностей у модель Magento 2 CRUD / абстрактна модель
Чи можна ввести залежність до моделі Magento 2 CRUD? Тобто - Magento 2 має базовий абстрактний клас моделі: Magento\Framework\Model\AbstractModel. Якщо ви хочете створити простий об’єкт "Створити, прочитати, оновити", "Видалити модель", ви розширите цей клас власним класом. class Foo extends Magento\Framework\Model\AbstractModel { } Чи можливо ввести __constructметод залежно від методу вашої …

2
Чому деякі класи визначають ін'єкції як у конструкторі, так і у di.xml?
Я не розумію, чому в деяких класах їх ін'єкції залежності оголошуються двічі - один раз у di.xmlконструкторі конкретного класу та в ньому. Наприклад, у Magento\Backend\Model\Url, di.xmlвизначено цей набір типів для 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 …

2
Як додати номер відстеження до поточної доставки замовлення в Magento 2?
Я знайшов зразкові коди для Magento 1.x. Але я поняття не маю, як це зробити на Magento 2. Чи може хтось описати, як це реалізувати, використовуючи залежність ін'єкції (DI) ? Дякую. $trackingDetail = array( 'carrier_code' => 'ups', 'title' => 'United Parcel Service', 'number' => 'TORD23254WERZXd3', // Replace with your tracking …

1
Magento 2: Конвенція про іменування віртуального типу
Дата: 1 червня 2015 р. (Враховуючи мінливий характер Magento 2) У Magento 2 ви можете налаштувати "віртуальний тип" у di.xmlфайлі конфігурації модуля . Ці віртуальні типи дозволяють змінювати аргументи конкретної введеної залежності. У основному коді Magento 2, схоже, є два умови іменування для віртуальних типів. По-перше, віртуальний тип має ім'я, …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.