Find out the purpose of each directory in the October CMS root folder
October CMS uses a modular structure where most programming features are found in either the modules or plugins directory.
# Root Directory
# App Directory
app directory contains application specific code. The contents of this directory are explored in more detail after this section. In summary, this area contains business logic that doesn't belong in traditional plugins. Most of the plugin features are available in this directory.
# Bootstrap Directory
bootstrap directory contains the app.php bootstrap script that loads the Laravel framework. The directory also contains the custom PHP class autoloader. Typically, files in this directory should not be modified.
# Config Directory
config directory contains all the application configuration files. Each file controls how the application functions. Configuration files can be changed according to your application requirements. System updates do not modify the configuration files.
# Plugins Directory
plugins directory packages that extend the core functionality of October CMS. Plugins can modify the platform by introducing new features. By default, the system loads all plugins found in the filesystem. Specific plugins can be disabled using the
system.disable_plugins configuration parameter.
# Storage Directory
storage directory contains log files, cache files, sessions and other files generated by October CMS. It includes several subdirectories:
app- contains application-specific storage files, such as media files, file uploads and automatically generated resources, e.g. resized files and combined asset files.
framework- used by the Laravel framework to store its generated files and caches.
cms- used by the October CMS platform to store its generated files and caches.
logs- contains the application's log files.
temp- used to store temporary application files.
# Modules Directory
modules directory contains the core packages of October CMS, providing core functionality that is common across the system. By default, modules are loaded automatically based on their presence in the file system. However, it is possible to specify which modules to load with the
system.load_modules configuration parameter. The
system module must be loaded at a minimum for the application to operate.
system- defines the core functionality of October CMS and is a required module.
cms- introduces functionality for rendering the frontend website theme. It is responsible for routing requests to pages, rendering pages and handling AJAX requests.
backend- responsible for displaying the backend panel pages.
editor- introduces a user interface for editing CMS templates in the backend panel.
media- introduces a media file management user interface in the backend panel. It allows back-end users to upload media files like images or video files and include them in other places, for example, blog posts.
tailor- introduces the October CMS Tailor features.
# Themes Directory
themes directory contains subdirectories for front-end website CMS themes. CMS themes include template files for the website pages, layouts, partials, assets, and other files. The active theme is set using the
cms.active_theme configuration parameter and can be overridden from the backend panel settings page.
# Vendor Directory
vendor directory contains packages that are included via Composer. Some plugins can include the vendor directory as well. The system vendor directory takes priority over plugin-specific vendor directories.
# App Directory
app directory contains application-specific files, including contents, assets and business logic that doesn't belong in a traditional plugin. It includes a Service Provider file that is loaded by the default configuration.
# Assets Directory
# Blueprints Directory
app/blueprints directory contains content blueprint files used by Tailor.
# Others Directories
You may create any directory in here, just like a plugin, such as
controllers. These will be autoloaded in the
App namespace. For example, the file app/models/Customer.php will be available in PHP as