coolms / core-module
Platform composition for coolms/core: the application services that wire the kernel contracts to whatever implements them -- config loading, backup/restore, the API manifest, outbox dispatch, retention and label resolution
Requires
- php: ^8.5
- ext-mbstring: *
- ext-zip: *
- coolms/core: ^1.0
- coolms/core-persistence-implementation: ^1.0
- psr/clock: ^1.0
- psr/log: ^3.0
- symfony/clock: ^8.0
- symfony/dependency-injection: ^8.0
- symfony/filesystem: ^8.0
- symfony/routing: ^8.0
- symfony/security-core: ^8.0
- symfony/string: ^8.0
- symfony/translation-contracts: ^3.4.2
- symfony/validator: ^8.0
- symfony/yaml: ^8.0
Requires (Dev)
- coolms/core-doctrine: ^1.0
- phpunit/phpunit: ^12.5
Suggests
- coolms/core-doctrine: Doctrine ORM/DBAL adapter -- the persistence implementation this module needs
This package is auto-updated.
Last update: 2026-08-17 18:21:52 UTC
README
The application layer over coolms/core.
The services that compose the kernel's contracts into behaviour — config
loading, backup and restore, the API manifest, outbox dispatch, retention
sweeps and label resolution.
A module in this platform is the part that wires domain to infrastructure. A
bundle is the Symfony integration around it. This is the former; see
coolms/core-bundle for the latter.
Installation
composer require coolms/core-module
An adapter is required, not optional. This package requires the virtual
coolms/core-persistence-implementation, so Composer will refuse to install it until something provides that. It is a hard failure by design — the alternative is a platform that installs cleanly and then cannot persist anything.
composer require coolms/core-doctrine # provides the implementation
What is in here
| Area | What it does |
|---|---|
Config/ |
the chained loader/writer — files first, then the database overlay |
Backup/ |
the backup engine: reader, writer, runner, table registry, restore ordering |
ApiManifest/ |
builds the machine-readable description of the platform's API surface |
Outbox/, ChangeFeed/, Retention/ |
outbox dispatch, sync change application, the retention sweep |
Translation/ |
LabelResolver — definition labels through the translator, with source-value fallback |
Dashboard/, Option/, Space/, Template/ |
the remaining platform composition services |
Why the layers are separate packages
coolms/core depends on four Symfony components. This package depends on
eleven — the DI attributes, security, routing, validation, filesystem and the
rest that composition genuinely needs.
Keeping them apart means a consumer that only wants the vocabulary (an entity model, a contract to implement) does not inherit the composition layer's dependency surface.
Related packages
| Package | Role |
|---|---|
coolms/core |
the contracts this composes |
coolms/core-bundle |
Symfony integration |
coolms/core-doctrine |
Doctrine adapter — one implementation of the persistence seam |
License
MIT. See LICENSE.