Building web shops is a challenging and tedious job, and even more so if a platform you are working on is limited via features, extensibility, and the overall ecosystem it provides. Choosing the right platform can often make the difference between a project's success or failure. The abundance of available e-commerce software, from SaaS to self-hosted solutions, does not really make it an easy choice.
The Magento e-commerce platform has been around for over 10 years now. With its first stable release dating back to March 2008, it immediately caught the attention of developers as an extensible and feature-rich open source platform. Over time, Magento established itself as not just a stunning technical and feature-rich platform, but as a robust ecosystem as well. By allowing developers to validate their real-world skills through the Magento certification program, certain standards have been put into effect, making it easier for merchants to better recognize their solution partners. Training courses have been further provided for other roles in e-commerce business as well, such as merchants, marketers, system administrators, and business analysts.
In this chapter, we will take a look at some of the key must-knows about Magento:
- Installing Magento
- Modes
- Areas
- Request flow processing
- Modules
- Cache
- Dependency injection
- Plugins
- Events and observers
- Console commands
- Cron jobs
To keep things compact as we move forward, let's assume the following throughout this book:
- We are working on the magelicious.loc project
- We are referring to our project root directory as <PROJECT_DIR>
- We are referring to the <PROJECT_DIR>/app/code/Magelicious directory as <MAGELICIOUS_DIR>
- We are referring to Magento's vendor/magento directory as <MAGENTO_DIR>
- We have a running LAMP/MAMP/WAMP stack (Apache, MySQL, PHP) that is compliant with Magento's requirements
- We have a Composer package manager installed
- We have access to crontab (Linux, MacOS) or Task Scheduler (Windows)