Questions tagged [di]

Denotes questions related to Dependency Injection in Magento 2.

Filter by
Sorted by
Tagged with
0
votes
1answer
37 views

Best practice to extend an object

What's the best practice and recommended way to extend an object like \Magento\Store\Model\Store with a new object property. I want to do something like this: $storeManager; //StoreManagerInterface ...
1
vote
3answers
579 views

Confused about using proxies

I kind of understand how the logic and the benefit of proxies in Magento 2 di. But can anybody tell me, how to use it?! Alan Storm use the generated proxy class, for example, I would call \Magento\...
10
votes
1answer
698 views

The purpose of the http verbs interfaces

In Magento 2.3 there are some interfaces for all the http verbs Magento\Framework\App\Action\HttpPostActionInterface Magento\Framework\App\Action\HttpGetActionInterface, ... All of them are empty ...
0
votes
1answer
2k views

Magento 2 Overwrites Topmenu.php In Module But Menu Nav Disappears

My di.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <...
8
votes
3answers
630 views

What is the use of “mapping” node in di.xml in Magento 2?

I am using Magento 2.2.5 have a look on file vendor\magento\module-sales\etc\di.xml <type name="Magento\Payment\Model\Checks\SpecificationFactory"> <arguments> <...
1
vote
1answer
941 views

How can i filter in sales order grid magento 2?

While i am using same code for filter it's working but i have break other grid like customer,invoice,cms page and get error "Not registered handle cms_page_listing_data_source" While i have moved di....
2
votes
0answers
99 views

Exception after bin/magento setup:di:compile and adding virtualType

I was adding this: <virtualType name="Test\Faq\Model\ResourceModel\VisitStat\Collection" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult"> <arguments> ...
0
votes
2answers
56 views

setup:di:compile ignores third party type definition (Monolog)

I have a DI configuration for a custom exception handler: <type name="My\Logger\Handler\ExceptionHandler"> <arguments> <argument name="formatter" xsi:type="object">My\...
3
votes
1answer
384 views

Undo preference from third party module

I have to deal with a third party module that enthusiastically uses preferences for everything and breaks stuff with it. For example: <preference for="Magento\Sales\Model\Order" type=&...
1
vote
1answer
959 views

Injecting object through virtual type not working

I am using this config in di.xml <virtualType name="ourFirstVirtualType" type="Test\Testmod\Model\Newmodelclass"> <arguments> <argument name="test_object" xsi:type=...
2
votes
2answers
660 views

Complex message not working

I've followed this tutorial: https://store.fooman.co.nz/blog/displaying-complex-error-messages-in-magento-2.html This is my di.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/...
5
votes
1answer
475 views

Plugin for aroundSavePaymentInformationAndPlaceOrder Throwing Error

I have a plugin that i want to intercept aroundSavePaymentInformationAndPlaceOrder, but it is giving me an error. Here is how it is set up: Vendor/Module/etc/di.xml <?xml version="1.0" ...
3
votes
3answers
1k views

Magento 2: Dependency Injection: Optional class as parameter

We are developing a Magento 2 extension and we need to inject a class from a third party extension that the user may or may not have installed. We thought about injecting the class via the di.xml ...
3
votes
1answer
1k views

Cannot get customer session in Controller

I am just trying to get the customer session in my custom controller class and it always returns NULL. What is wrong with Magento? It doesn't work as expected, I am spending days not minutes for a ...
0
votes
2answers
444 views

Activating custom grid in magento2 causes other grid to throws error

I have created a custom grid with following di.xml di.xml <preference for="\Magento\Customer\Controller\Adminhtml\Index\InlineEdit" type="Namespace\Modulename\Controller\Adminhtml\Index\...
4
votes
3answers
2k views

Overriding constructors for dependency injection

So, the new dependency injection approach requires me to inject everything I need into the contructor of an object. I get that. But how is this more flexible? For instance... I have my own Topmenu ...
6
votes
2answers
7k views

How to Add a viewModel to a core block?

I am trying to overwrite a core template and add my custom logic using a viewModel as follows: <?xml version="1.0"?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&...
1
vote
1answer
268 views

Magento 2: Plugin not working on \Magento\Swatches\Block\LayeredNavigation\RenderLayered

I'm trying to create a plugin for \Magento\Swatches\Block\LayeredNavigation\RenderLayered in order to modify the return of getOptionViewData() It's not working. My di.xml looks like that: ... <...
0
votes
1answer
384 views

Multiple datasource define in di.xml magento2

<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="...
0
votes
1answer
182 views

Magento2: How to use different implementations of an interface

I am creating supplier imports. In order to do this, I created a base module "ProductImportBase" and two supplier specific modules "ProductImportA" and "ProductImportB". The base module contains stuff ...
3
votes
0answers
2k views

Fatal error: Uncaught Error: Cannot instantiate interface Magento\Framework\Serialize\SerializerInterface

When I try to update magento 2.1.9 to 2.2.0 I am getting this error Fatal error: Uncaught Error: Cannot instantiate interface Magento\Framework\Serialize\SerializerInterface in vendor/magento/...
-1
votes
4answers
277 views

Magento2 Controller Not overriding [closed]

I add the controller in my local but it not working. di.xml <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../....
2
votes
1answer
2k views

In Magento 2 use the after plugin in place order function, in the plugin i can't get the order id?

in Magento 2 i extend the magento place order function \Magento\Sales\Model\Order but i did give the order id public function afterPlace(\Magento\Sales\Model\Order $subject, $result){ $this-&...
1
vote
2answers
3k views

Magento2 around method in plugin to save extra field data of customer

I would like to add extra information to the customer. I have added field in admin side form of customer. I have to save that data. How to add plugin around method during save customer.
2
votes
3answers
199 views

Magento 2 DI compilation issue

I've the run the before running setup:di:compile home page and other is working fine.After running the setup:di:compile expect home page other pages working fine. if i'm removing the di/global.ser ...
1
vote
0answers
243 views

Magento 2 class constructor

I have class in my module for Magento 2. His constructor gets 2 parameters class MyClass { private $str1; private $str2; public function __construct(string $str1, string str2) { ...
0
votes
2answers
76 views

Contoller in magento2?

How to override Magento\Sales\Controller\Adminhtml\Order\AddressSave contoller? di.xml <preference for="Magento\Sales\Controller\Adminhtml\Order\AddressSave" type="Xxx\Order\Controller\Adminhtml\...
3
votes
1answer
652 views

Magento 2 - Empty arguments in adapter __construct()

I am creating an adapter for a third party module by following the Magento_Braintree structure. In the Braintree module, they have a factory BraintreeAdapterFactory that creates an adapter ...
1
vote
0answers
38 views

Disable di:compile PHP Comments check in Magento 2.2.2

I Upgraded to Magento 2.2.2 and now di:compile checks if @params comments for constructors are correct. I have many modules where the comments are incorrect but the params are correct, so I want to ...
4
votes
2answers
4k views

Magento 2: How can I use ifconfig or something similar to layout component

I created a boolean option (Yes / No) in Store -> Configuration, with which I can display or not the checkout sidebar. The configuration path is: vendorname_sidebar/display/enabled. Below is a part ...
1
vote
0answers
451 views

“Cannot instantiate interface” but preference tag exists in di.xml

I'm getting this error when trying to load a page: Fatal error: Uncaught Error: Cannot instantiate interface Codazon\ThemeOptions\Framework\App\Config\Scope\ReaderPoolInterface in /magento2/vendor/...
1
vote
1answer
129 views

unit test with phpunit

I create simple unit test with object manager with class name $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this) and object Name ModuleList like $...
4
votes
3answers
6k views

Magento 2 custom logger 'Missing required argument $name'

I'm trying to create a custom logger, so I can log to a custom log file. I've looked at and followed multiple tutorials that all say the same, however I keep getting the same error. Tutorials that I ...
0
votes
1answer
166 views

Magento2 di in ResourceCollection

I have the fallowing collection and I want to pass the ProductFactory so it can be accessible in my collection. class Collection extends AbstractCollection { public $productFactory; ...
1
vote
0answers
89 views

Magento 2 Resource Model not working [closed]

Di.xml <?xml version="1.0"?> <!-- /** * Mageplaza_HelloWorld extension * NOTICE OF LICENSE * * This source file is subject to the Mageplaza ...
0
votes
2answers
265 views

DI not working in Controller

I have a Controller that contains the following: ... use Magento\Backend\App\Action; use Magento\TestFramework\ErrorLog\Logger; use Magento\MediaStorage\Model\File\UploaderFactory; use MyNamespace\...
2
votes
2answers
701 views

What should we use instead of the Magento\Checkout\Model\Cart model?

The Magento\Checkout\Model\Cart class was marked as deprecated a long time ago (since 2.1 ver.). What should I use instead of it to work with a customers cart? I know that I can work directly with a ...
5
votes
1answer
962 views

Magento 2. Injecting a virtual type results in array instead of object

I'm having some trouble with virtual types. I've done some research and this is what I have. 0: A class which takes a string argument 1: A virtual type based on above class with a constant value for ...
2
votes
4answers
1k views

Is there any way to identify what class causes 'Area code is not set' or 'Area code already set'?

I know there are a lot of questions about 'Area code is not set', but no one has yet answered the main question. How to find the file which caused this Exception? In my case, I updated a lot of ...
0
votes
1answer
1k views

Magento 2: Use a model with a dynamic name through DI

i have one situation where i need to load need model dynamically i followed below steps it work great same way like layersPool in catalog module but they used objectManager as per magento we ...
0
votes
1answer
47 views

Error on overriding magento 2 block with the Plugin(Intercepter)

I am trying to override a Magento 2 block with the help of di.xml and Plugin(Interceptor). But I am getting an error message [2017-09-27 05:17:33] main.CRITICAL: Packagename\Modulename\Plugin\Block\...
4
votes
3answers
933 views

REST Api interface di not working. Class ItemInterface does not exist

ItemInterface: namespace MyVendor\SampleModule1\Api\Data; interface ItemInterface { /** * @return string */ public function getName(); /** * @return string|null */ ...
1
vote
1answer
170 views

Although I use the correct namespace a wrong instance is passed to the constructor

I have a block php file. Block File Code: <?php namespace Vendor\SampleModule1\Block; use Magento\Framework\View\Element\Template; use Magento\Framework\View\Element\Template\Context; use Vendor\...
3
votes
1answer
157 views

How to Override custom module Model in custom module Magento 2?

I have two Modules in app/code. Xyz_Xyz - Module that already exists. I can't change its file. Abc_Abc - Module that I creating to override Xyz_Xyz Model. The code I try is here. app/code/Abc/Abc/...
3
votes
1answer
729 views

Can a virtual type be used as a dependency for a class?

I'm trying to do something new with virtual types. I understand that you can create these in your di.xml and use them as arguments for other types in di.xml. But can I also declare a virtual type and ...
4
votes
2answers
974 views

Magento 2 not respecting preference?

I'm trying to make a preference to override the PayPal Module's ResponseValidator class, so that i can save the validation errors for easier debugging on our end if a customer's checkout fails. The ...
4
votes
0answers
2k views

Magento 2 - Overwrite di.xml for Core Cms module

I've looked and looked, but can't find anything explaining what i need to do. Problem is, i want to add an svg file to the image uploader in the WYSIWYG. I know i need to extend the core to do this, ...
4
votes
2answers
190 views

Declaring an empty type in di.xml

What does this line in di.xml do? <type name="Magento\Framework\Search\EntityMetadata" /> It's just a type tag that closes immediately. There are no arguments passed to it, no plugins ...
0
votes
1answer
118 views

Cannot Extend Widget Block Class

I have installed the Amasty ShopBy Extension and am trying to make my own modifications the correct way: using my own extension. I have created a preference in di.xml (tried in /etc and /etc/frontend)...
1
vote
2answers
785 views

Magento 2 product model override not working correctly

I've created a model override for Magento\Catalog\Model\Product. My override functions for getName() and getPrice() are working. But getTierPrices() and getTierPrice() in the same class are not being ...