Hi everyone,
I would like to share with you the best practices and conventions for Magento 1 that I've been implementing for the last 7 years.
I will be editing this answer with more and more information, and I would like to hear more about your best practices and conventions.
Based on your participation on this topic, I will edit this post in the topic and I will add your best practices as well, so we can use the first post as a "wiki" and improve it with the collaboration of everyone in the forum.
Back-end
- Do not modify the Magento core: app/code/core
This is the #1 rule when it comes to customizing Magento. To be specific, the files from the app/code/core folder should never be modified to ensure the stability and upgradability of the Magento store.
- Avoid rewriting classes
- If you rewrite a class, then annotate the changes you made to the core file
- Avoid implementing a lot of observers
- Keep a small number of shopping cart and catalog price rules
- Remember setting magento in Developer Mode to develop
- Develop with the display_errors setting enabled and E_NOTICE turned on
- Always turn off the cache in your local machine to avoid losing time
- Document your classes and methods using PHPDoc comments
- Limit the usage of PHP in the front-end
- Do not use direct SQL queries to connect to the database, use models instead
- Follow Magento naming conventions for classes, methods and files
- Methods and variable names should use camelCase
- Indexed arrays should use snake_case keys
- PHP variable names in the front-end should start with $_ (underscore after $ sign)
Front-end
- Don't use inline CSS in the front-end
- You can use tables, but only if you want to present tabular data
- Use image sprites to load icons in your theme