Without debugging enabled, your Magento project is basically a box with secrets. Unless you want to continuously read the log of the project e.g:
tail var/log/exception.log
This is obviously useful, however as a developer that works with a lot of frameworks like Symfony, CakePHP, Laravel, i know how useful it is to see immediately the exception that has been raised in the place where it ocurred. You will need to setup some basic things in your project, so you can simply see errors on the fly.
In this short article, we'll explain how to configure it quickly.
1. Set MAGE_MODE environment variable to developer
The first thing you gotta do is to set the current mode of Magento to the developer mode. This can be done in 2 ways, either directly with the command line. The first you need to do is to know in which mode are you currently set in with:
php bin/magento deploy:mode:show
This will print in the terminal something like:
Current application mode: default. (Note: Environment variables may override this value.)
To set the current mode to the developer mode, where exceptions are thrown directly in the screen and you can see what happens, use the following command:
php bin/magento deploy:mode:set developer
There are 3 modes available that you can set with the CLI:
- default
- production
- developer
That should do the trick, however as mentioned on the command, the environment variables may override the defined behaviour, so to be sure that you are working as a developer in the project, modify the .htaccess
file in the root directory of your magento project and define the MAGE_MODE variable to developer:
It is usually in the line #5 of the file and is commented, so you should simply uncomment it and that's it!
# Use the developer mode
SetEnv MAGE_MODE developer
Save the changes and proceed with the next configuration.
2. Enable display errors
As in fact, Magento runs on PHP, you will need to enable the error reporting of PHP. This can be done easily with these 2 lines of code:
error_reporting(E_ALL);
ini_set('display_errors', 1);
That usually, exist already on the app/bootstrap.php
file and you just need to uncomment the lines of the mentioned instructions. That should be enough to see exceptions, so you can solve them.
Happy coding !