The Composer – Focus Module Installer repository provides a dedicated Composer installer plugin designed to enable structured and automated installation of Focus CMS modules.
The package ensures that modules are managed as Composer dependencies while remaining first-class architectural components of the CMS.
Unlike the traditional Composer workflow, modules are not installed into the vendor/ directory.
Instead, they are placed directly into the project’s Modules/ directory.
Independent, Modular Installation Mechanism
Installation is not limited to the application’s composer.json file.
The system supports a modular installation model independent of the App composer.json, implemented via a modules.json configuration file.
This approach allows:
- defining optional repositories,
- using local development repositories,
- symbolic link (symlink) based integration,
- dynamic module registration via the Composer installer plugin.
The modules.json file declaratively defines which modules should be installed and from which source (e.g., VCS, path repository, symlink).
As a result:
- modules remain structural components of the project,
- they do not behave as “black box” dependencies,
- they are version-controlled yet domain-integrated,
- in development environments, they can even be directly linked.
This approach aligns well with a modular, domain-oriented architecture where functional units are not mere packages, but active system components.
The Composer – Focus Module Installer works alongside the Theme Installer, enabling both Themes/ and Modules/ directories to participate in a Composer-based workflow while preserving the logical structure of the CMS.
GitHub Repository
https://github.com/hi-personal/focus-cms-cmi