Some major impacts of changing core files directly are listed below:
- Making changes in core files directly makes it
difficult to debug issues in functionality, since most of the Magento developers follow standard and think that there should not be any core files modified. So they do not go deeper into core Magento's files to debug issue.
- If some core files have been modified, it can create
conflict while applying security patches or upgrading Magento.
If you want to make changes in default functionality of Magento, then Magento has provided many ways to do so.
There are 3 basic ways to properly modify Magento code. Properly modifying simply means that we will not be changing any of the core files.
Override: create the exact same folder structure as the class you are trying to override in app/code/local/Mage. This file will be called instead of the one from the core folder.
Rewrite: redirect a specific core class to another class.
Observer: create a custom listener to handle events generated by the core.