Вопросы с тегом «di»

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

4
Magento 2: Запустить `setup: di: compile` ** ** ** определенный модуль?
Можно ли предварительно сгенерировать код для одного конкретного модуля? IE - я могу сгенерировать весь код в системе с php bin/magento setup:di:compile Однако это может занять много времени. Я хотел бы предварительно сгенерировать только файлы для конкретного модуля. php bin/magento setup:di:compile Pulsestorm_Commercebug Конкретная проблема, которую я пытаюсь решить, заключается в …
33 php  magento2  di 

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
Каковы все допустимые значения `xsi: type` в xml из Magento2
В Magento 2 (почти) все аргументы, перечисленные в XML-файлах, имеют атрибут, xsi:typeкоторый определяет, как его значение интерпретируется. Например, в di.xmlфайле внутреннего модуля есть это: <argument name="scopeType" xsi:type="const">Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT</argument> это означает, что значение аргумента scopeTypeявляется значением константыMagento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT или этот <argument name="template" xsi:type="string">Magento_Theme::root.phtml</argument> это означает, что значением аргумента templateявляется строка Magento_Theme::root.phtml. Каковы все …
20 magento2  xml  di 

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

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 …


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 …

1
Как динамически включить / отключить <preference> в di.xml?
В настоящее время у меня есть следующее &lt;preference/&gt;в одном из моих файлов di.xml: &lt;preference for="Magento\Contact\Controller\Index\Post" type="RadTest\TestModule\Controller\Contact\Post" /&gt; У меня есть опция включения / выключения конфигурации для моего модуля в панели администратора. Я хочу, чтобы этот параметр &lt;preference&gt;был включен, только если для параметра пользовательской конфигурации установлено значение «включено». Как я могу …

1
Назначение интерфейсов глаголов http
В Magento 2.3 есть несколько интерфейсов для всех http глаголов Magento\Framework\App\Action\HttpPostActionInterface Magento\Framework\App\Action\HttpGetActionInterface, ... Все они пусты и внедрены Magento\Framework\App\ActionInterface. Я также обнаружил, что все они сопоставлены app/etc/di.xmlс параметром, Magento\Framework\App\Request\HttpMethodMapи многие контроллеры реализуют эти интерфейсы. Но не все контроллеры. Это все, что я мог найти о них. Какова их цель?

2
тип константы di.xml против init_parameter
Я вижу в di.xmlфайлах из ядра, что некоторые аргументы имеют тип, init_parameterно значения параметров являются постоянными. &lt;type name="Magento\Framework\View\Page\Config\Renderer"&gt; &lt;arguments&gt; &lt;argument name="appMode" xsi:type="init_parameter"&gt;Magento\Framework\App\State::PARAM_MODE&lt;/argument&gt; &lt;/arguments&gt; &lt;/type&gt; или этот &lt;type name="Magento\Framework\App\Cache\State"&gt; &lt;arguments&gt; &lt;argument name="banAll" xsi:type="init_parameter"&gt;Magento\Framework\App\Cache\State::PARAM_BAN_CACHE&lt;/argument&gt; &lt;/arguments&gt; &lt;/type&gt; и много других. Но из того, что я вижу в интерпретаторе, связанном с init_parameterконстантой, используетсяMagento\Framework\App\Arguments\ArgumentInterpreter::evaluate public …
8 magento2  di 

2
Раздражает тонны классов для DI в конструкторах Magento 2 - есть ли лучший способ?
В настоящее время меня раздражает написание подобных конструкторов в массовом порядке, как следующие в моих модулях. public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, /* ... */ \Foo\Bar\Model\Baz $baz, /* ... */ \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { $this-&gt;registry = $registry; /* ... …

2
Magento 2 не поддерживает внедрение зависимостей в чертах?
Работают ли черты с внедрением зависимостей в Magento? Рассмотрим следующий код: Черта Класс namespace Frame\Slick\Block; use Frame\Slider\Slick\Block\Data as Helper trait Slick { protected $_slickHelper; public function __construct(Helper $slickHelper) { $this-&gt;_slickHelper = $slickHelper; } } Класс, использующий черту namespace Frame\Slick\Block; class Product ListProduct implements BlockInterface { use Slick; public function testTrait() …
8 magento2  php  di 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.