What is this?

This is a website that allows you to lookup the configuration values for specific symbols in Magento 2's automatic constructor dependency injection system, and do so for different versions of Magento.

Automatic Constructor Dependency Injection? What's that?

When Magento 2 instantiates an object for you (objects like controllers, blocks, objects created via factories, etc), it will automatically create additional objects to pass into the main object's __constructor function.

Also? These constructor arguments that Magento creates on your behalf? Magento will also automatically create arguments for their __constructor functions. This means if you're doing Magento 2 programming the way Magento wants you to, you never need to type PHP's new keyword again.

I don't see anything like that in the PHP manual how does this even work?

Behind the scenes, Magento uses an Object Manager object. Whenever Magento needs to create an object for you (objects like controllers, blocks, objects created via factories, or objects injected into __constructor functions), it uses this Object Manager object.

The class(es) for the Object Manager object contain logic that uses PHP's Reflection APIs to scan a class's __constructor function, look at the parameters and type hints, and then dynamically create objects to pass into the __constructor, and then dynamically instantiate the original object.

In addition to using reflection, Magento allows you to create configuration files that change how the Object Manager behaves. This website lets you quickly search these configuration files. This is helpful if you're trying to understand why the Object Manager or the automatic constructor dependency injection system is behaving a certain way.

Interested in learning more? Here's an eight part series.

Good lord that seems like it's pretty slow?

Yes, it is.

Where does this site's data come from?

We used composer's create-project command to install the latest versions of Magento, and then scanned the vendor folders for di.xml files. This means that, in addition to including the di.xml files you can find in GitHub, the search will also include files from the third party modules Magento ships along side Magento's core code.

Who made this?

That would be me, Alan Storm. I used to work full time with Magento until eBay slapped the Magento brand on the old GSI Commerce team and made changes to its business model that made my business model obsolete.

Actually that's not what happened and if you'd done the right busin—

Bye!