- community – reserved for extensions available through public marketplaces (ex. Magento Connect).
- core – contains the base Magento application, separated into two namespaces: Mage & Enterprise. Files in this pool should never be edited directly.
- local – customizations, overrides, etc. should all be placed into this namespace.
Namespaces & modules
Every module must contain its own configuration file (“etc/config.xml”), but presence of other components varies on individual needs. Below is the list of potential components.
|Blocks||Block||Prepare data for presentation (methods from a block associated with a given template file can be accessed using $this inside the .phtml file).|
|Controllers||controllers||Responsible for processing frontend requests, by matching them to declared actions (methods). As per Zend Framework best practices, controllers should be kept as skinny as possible, and business logic should be left to the models.|
|Configuration||etc||Contains XML configuration files for the given module, including declarations, API capabilities (used in WSDL), frontend routing, admin routing, system configuration forms, FPC settings.|
|Helpers||Helper||Auxiliary methods for commonly used operations.|
|Resource Models||Model/Resource||Provide access to the data in the database.|
|Schema SQL Scripts||sql||Create and modify database schema.|
|Data SQL Scripts||sql||Modify data in the database (ex. insert a list of ZIP codes for a store locator table).|