Rather than being a large application, Magento is built by smaller modules, each adding specific functionality to Magento.
One of the advantages of this approach is the ability to enable and disable specific module functionality with ease, as well as add new functionality by adding new modules.
Magento is a huge framework, composed of close to 30,000 files. Requiring every single file when the application starts would make it incredibly slow and heavy. For this reason, Magento makes use of an autoloader class to find the required files each time a factory method is called.
So, what exactly is an autoloader? PHP5 includes a function called __autoload()
. When instantiating a class, the __autoload()
function is automatically called; inside this function, custom logic is defined to parse the class name and the required file.
Let's take a closer look at the Magento bootstrap code located at app/Mage.php
:
… Mage::register('original_include_path', get_include_path())...