The Composer – Focus Theme Installer repository provides a dedicated Composer installer plugin that automates theme management and installation within Focus CMS.
A key architectural distinction is that themes are not installed into the vendor/ directory, but directly into the project’s Themes/ directory.
Independent and Configurable Installation Model
Installation is not limited to the application’s composer.json file.
The system supports a partially independent, configuration-driven installation mechanism, implemented via a themes.json file.
This enables:
- defining optional repositories,
- using local development path repositories,
- symlink-based development workflows,
- dynamic theme registration via the Composer installer plugin.
The themes.json file declaratively defines which themes should be installed and from which source.
This ensures that:
- themes remain first-class resources of the project,
- they do not behave as traditional vendor dependencies,
- they are version-controlled while remaining structurally integrated into the CMS,
- in development environments, they can even be used via direct symlinking.
As a result, themes can be installed and updated in a reproducible manner, while the project directory structure remains clean and modular.
The Composer – Focus Theme Installer works alongside the Module Installer, allowing both Themes/ and Modules/ directories to participate in a Composer-based, domain-oriented workflow.
GitHub Repository
https://github.com/hi-personal/focus-cms-cti