Вопросы с тегом «dependency-injection»

Обозначает вопросы относительно внедрения зависимостей в Magento 2

3
В чем разница между типом и виртуальным типом
В 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
Вспомогательные помощники в Мадженто 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. Я прочитал об этом замечательную статью об Alan Storm и полностью понимаю, как создаются эти классы. Тем не менее, и я не знаю, потому ли это, что я не являюсь носителем английского языка или в объяснениях Алана используются неосновные классы, …

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 $design, \Magento\Framework\Registry $registry, \Magento\Store\Model\App\Emulation …

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 / Абстрактная модель
Можно ли ввести зависимость в модель CRUD Magento 2? То есть - Magento 2 имеет базовый абстрактный класс модели: Magento\Framework\Model\AbstractModel. Если вы хотите создать простой объект модели Create, Read, Update, Delete, вы расширяете этот класс своим собственным классом. 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 </argument> <argument …

2
Как добавить номер для отслеживания доставки текущего заказа в Magento 2?
Я нашел примеры кодов для Magento 1.x. Но я понятия не имею, как это сделать на Magento 2. Кто-нибудь может описать, как реализовать это с помощью Dependency Injection (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.