Modes play a crucial role in Magento's development and deployment processes. They are handled by the deploy module, which can be found under the <MAGENTO_DIR>/module-deploy directory.
The built-in php bin/magento command provides us with the following deploy commands:
deploy
deploy:mode:set Set application mode.
deploy:mode:show Displays current application mode.
We already used the deploy:mode:set developer command to switch from default to developer mode.
Magento differentiates between following three modes:
- default: The default after-install mode:
- Not optimized for production
- Symlinks to static view files are published to the pub/static directory
- Errors and exceptions are not shown to the user, as they are logged to the filesystem
- Should avoid using it
- developer: For development systems only:
- Symlinks to static view files are published to the pub/static directory
- Provides verbose logging
- Enables automatic code compilation
- Enables enhanced debugging
- Slowest performance
- production: For production systems:
- Errors and exceptions are not shown to the user, as they are logged to the filesystem
- Static view files are not materialized, as they are served from the cache only
- Automatic code file compilation is disabled, as new or updated files are not written to the filesystem
- Enabling and disabling the cache types is not possible from the Magento admin
- Fastest performance
Carefully balancing developer mode with some of the cache types being enabled/disabled can provide optimal performance during development.