Magento 1

A brief reminder of the Magento 1 folder structure:

  • app/code followed by either
    • /core for core files
    • /community for third party extensions
    • /local for custom development
  • Modules in the above areas were declared via an XML file in app/etc/module
  • Layouts and templates were located in app/design/frontend
  • Style and JS files were stored in the skin and js subdirectories.

The Changes

Magento 2 replaces the core/communitys module groupings and everything is now directly stored in app/code or vendor composer modules.
Modules are Declared inside each module in the /etc directory. Layouts and templates are moved a new /view directory. Style and JS files are moved inside modules.

Magento 2

  • All core, third party, custom and theme modules go in either vendor (composer) or app/code.
  • Core modules are include in the same way local or community modules are. Each module is listed under a vendor-name/module-name directory inside either vendor or app/code For core modules, the vendor is “magento”.
  • Module front-end code is now stored with the module rather than with the front-end theme. For example the Luma theme is stored as a module in vendor/magento/theme-frontend-luma

Magento 2 Modules

Each module, once installed either manually or via composer will create the following inside the app/code directory:

  • /etc - the main configuration folder and module xml
  • /Setup - database table related file which run in the first instance/during updates
  • /Controller - controller classes and implementation
  • /Model - model classes/business logic
  • /Helper - miscellaneous data
  • /Block - view classes
  • /view - phtml, CSS and JS required to display the module
  • /i18n - internationalisation/languages