Question

I'm trying to understand how compilation works in Magento 2 with regards to default mode, developer mode, and production mode.

The docs state that auto compilation is enabled in developer mode, which I assume negates the need to run setup:di:compile? In default mode, I'm not sure how compilation is handled. For production mode, I assume you need to re-run setup:di:compile if changes are made for those to materialize?

Was it helpful?

Solution

If you don't run setup:di:compile or clean var/di, DI will work same in all mode. If you run setup:di:compile and enable production mode, DI will get information from compiled files from var/di.

OTHER TIPS

Theorically you don't need (and you shouldn't) to run setup:di:compile when in developer mode. However, once you do that, Magento will generate the compiled classes under /generated/code (/var/generated in older versions). You can delete the content under generated/code/* and generated/metadata/* at any time (when in developer mode).

When you enable the production mode, the compilation will start automatically (unless --skip-generation is passed to deploy:mode:set).

You can find more information on the links below:

Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top