Directory Structure
There are many different moving parts that come together to make the October CMS platform work. By default October CMS uses a modular structure where most programming features are found in either the modules or plugin directory. The only required module is the system module.
# Root Directory
# Bootstrap Directory
The bootstrap
directory contains the app.php
bootstrapper file that loads the Laravel framework. The directory also contains the custom autoloader used by the application, this is pulled in by any script that needs to load files within the application. You should not typically need to modify any files within this directory.
# Config Directory
The config
directory contains all the application configuration files. Each file controls how the application functions and it is a good idea to get familiar with each file and its contents. These belong to your application and can be modified however you wish, they will not be touched during system updates.
# Modules Directory
The modules
directory contains the core packages that are included with October CMS, providing core functionality that is common across the system. Modules are loaded automatically based on their presence in the file system by default, however, you can manually specify which modules to load with the system.load_modules
configuration item. The system module must be loaded at a minimum for the application to operate.
# Plugins Directory
The plugins
directory contains packages that extend the core functionality of October CMS. Similar to modules, they can modify the platform by introducing new features or by extending other plugins. Plugins are loaded automatically when they are found in the filesystem, however, you can manually disable plugins using the system.disable_plugins
configuration item.
# Storage Directory
The storage
directory contains log files, cache files, sessions and other files generated by October CMS. The inner directory is segregated in to app
, cms
, framework
, logs
and temp
.
The app
storage directory contains application specific storage items, such as media files, file uploads and automatically generated resources, such as resized files and combined asset files. The framework
storage directory is used by the Laravel framework to store its generated files and caches. The cms
storage directory is used by the October CMS platform to store its generated files and caches. The logs
storage directory contains your application's log files. The temp
storage directory is a working directory used by the application.
# Themes Directory
The themes
directory contains static file content that is used to manage the front end structure of your website. The active theme is set using the cms.active_theme
configuration item.
# Vendor Directory
The vendor
directory contains packages are included via Composer in either the project's /vendor
directory or can sometimes be found in plugin-specific /vendor
directories. The project vendor directory takes priority over and plugin vendor directories that appear in the system.
# Modules Directory
# System Module
The system
module contains the core functionality of October CMS and is a required module. It has shared logic that is used by other modules.
# CMS Module
The cms
module introduces functionality for rendering frontend pages and loading themes. It is responsible for routing to pages, rendering partials and handling AJAX requests.
# Backend Module
The backend
module is responsible for rendering backend pages and orchestrating menus, layouts and other administrative features.
# Editor Module
The editor
module introduces a code editor to the backend interface of October CMS. It allows you to manage the website theme directly in the backend.
# Media Module
The media
module introduces a media management feature to the backend interface of October CMS. It allows you to upload media files for inclusion in other areas.