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

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

41
В чем разница между типом и виртуальным типом

В di.xmlкомплекте с Magento2 есть узел typeи узел virtualType. Мои вопросы: что это такое virtualTypeи в каком случае его следует использовать вместо type? В некоторых местах это выглядит как символическая ссылка или переписать: <virtualType name="Magento\Core\Model\Session\Storage"...

39
Что запускает создание фабрики в Magento 2

Magento 2 содержит ряд файлов классов, которые либо предварительно сгенерированы, либо создаются на лету. Они живут в var/generated Эти сгенерированные файлы включают фабричные классы. Из документации я понимаю, что программист использует фабричные классы для создания экземпляров «неинъекционных»...

26
Вспомогательные помощники в Мадженто 2

Последние сборки Magento 2 покончили с Mageклассом. Это значит, что мы потеряли Mage::helperметод. Существует ли метод замены (фабрика помощников?) Для создания экземпляров помощников в Magento 2? Или мы должны использовать новый класс диспетчера объектов и просто создать экземпляр помощника как...

21
Magento 2: что такое параметр конструктора массива $ data?

Итак, я заметил, что в большинстве моделей и блоков это array $data = []задано как последний параметр конструктора . Например \Magento\Catalog\Block\Product\ListProduct public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Data\Helper\PostHelper...

19
Лучшие практики Magento 2 DI

Допустим, я создаю расширение для Magento 2, которое ... ну ... не важно. Допустим, это супер круто. Но я хочу убедиться, что это сборка с использованием надлежащих стандартов, чтобы другие разработчики могли расширять ее. Когда я должен использовать DI в комбинации с интерфейсами, а когда нет?...

17
Magento 2: практическое объяснение, что такое прокси-класс?

Итак, я теоретически знаю, что такое прокси-класс в Magento 2. Я прочитал об этом замечательную статью об Alan Storm и полностью понимаю, как создаются эти классы. Тем не менее, и я не знаю, потому ли это, что я не являюсь носителем английского языка или в объяснениях Алана используются неосновные...

16
Добавление нового метода в абстрактный класс в Magento 2

Как сказано в этой теме: переопределить абстрактный класс в Magento 2 в Magento 1 , Я могу просто создать новый класс. В Magento 2 нам нужно использовать плагины, но плагины позволяют мне только изменять существующие методы. Что мне делать, если я хочу добавить новый метод? Пример: Этот класс...

15
DI и расширение блока на Magento 2

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

14
Magento 2: использовать оператор в сравнении с прямым путем к классу?

Возможно, я упускаю суть, но мне просто интересно, почему иногда есть выражение «использование» для определенного класса, а иногда нет. Пример: app\code\Magento\Email\Model\Template.phpмы имеем в верхней части файла: namespace Magento\Email\Model; use Magento\Store\Model\ScopeInterface; use...

14
Как переопределить класс Virtual Type в Magento 2

Как переопределить блок VirtualType в Magento 2, я хочу переопределить следующий блок виртуального типа своим собственным блоком, <virtualType name="Magento\CatalogSearch\Block\SearchResult\ListProduct" type="Magento\Catalog\Block\Product\ListProduct"> <arguments> <argument...

12
Почему я не могу внедрить интерфейс 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;...

12
Внедрение зависимостей в Magento 2 CRUD / Абстрактная модель

Можно ли ввести зависимость в модель CRUD Magento 2? То есть - Magento 2 имеет базовый абстрактный класс модели: Magento\Framework\Model\AbstractModel. Если вы хотите создать простой объект модели Create, Read, Update, Delete, вы расширяете этот класс своим собственным классом. class Foo extends...

12
Почему некоторые классы определяют инъекции как в своем конструкторе, так и в di.xml?

Я не понимаю, почему в некоторых классах их инъекции зависимостей объявляются дважды - один раз в конструкторе di.xmlи в конкретном классе. Например, в Magento\Backend\Model\Urlего di.xmlопределен набор типов для DI: <type name="Magento\Backend\Model\Url"> <arguments> <argument...

10
Magento 2: Соглашение об именовании виртуальных типов

Дата: 1 июня 2015 г. (учитывая изменяющуюся природу Magento 2) В Magento 2 вы можете настроить «виртуальный тип» в di.xmlфайле конфигурации модуля . Эти виртуальные типы позволяют изменять аргументы конкретной внедренной зависимости. В основном коде Magento 2, по-видимому, существует два соглашения...

10
Как добавить номер для отслеживания доставки текущего заказа в Magento 2?

Я нашел примеры кодов для Magento 1.x. Но я понятия не имею, как это сделать на Magento 2. Кто-нибудь может описать, как реализовать это с помощью Dependency Injection (DI) ? Спасибо. $trackingDetail = array( 'carrier_code' => 'ups', 'title' => 'United Parcel Service', 'number' =>...

9
Создание собственного модуля в magento2 покажет фатальную ошибку

Я работаю над созданием пользовательского модуля в magento 2, но он не работает. Не могли бы вы подсказать, где я ошибся? Код моего модуля: приложение / и т.д. / config.php: 'modules' => array ( 'Ramesh_Sample' => 1, ), Приложение / код / ​​Рамеш / образец / и т.д. / module.xml <?xml...

8
Как получить ScopeConfigInterface через диспетчер объектов модульных тестов в magento 2?

Я пытаюсь прочитать строку в моем модульном тесте из core_config_table в базе данных magento 2. Я знаю, что для выполнения этой работы, как я прочитал эту ссылку . Я должен использовать: \Magento\Framework\App\Config\ScopeConfigInterface через:...

8
Раздражает тонны классов для DI в конструкторах Magento 2 - есть ли лучший способ?

В настоящее время меня раздражает написание подобных конструкторов в массовом порядке, как следующие в моих модулях. public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, /* ... */ \Foo\Bar\Model\Baz $baz, /* ... */...