If you are familiar with the traditional MVC implementations such as CakePHP or Symfony, you may know that the most common implementation is called a convention-based MVC. With a convention-based MVC, to add a new model or let's say a controller, you only need to create the file/class (following the framework conventions) and the system will pick it up automatically.
Magento, on the other hand, uses a configuration-based MVC pattern , meaning that creating our file/class is not enough; we explicitly have to tell Magento that we added a new class.
Each Magento module has a config.xml
file, which is located under the module etc/
directory and contains all the relevant module configuration. For example, if we want to add a new module that includes a new model, we would need to define a node in the configuration file that tells Magento where to find our model, such as:
<global> … <models> <group_classname> <class>Namespace_Modulename_Model...