Winter Libraries: Ecosystem Overview and Selection Guide
The Winter library ecosystem is a set of optional packages that extend the Winter Boot framework with integrations for databases, message queues, object storage, search, and distributed infrastructure. Every library implements the framework’s module system contract and registers beans automatically, so once you enable a module in application.yml you can #[Autowired] its templates and clients anywhere in your code.
Choose a library
Section titled “Choose a library”Match your use case to a library and package.
| Need | Use | Package |
|---|---|---|
| Relational database with ORM entities | Doctrine | suvera/winter-doctrine |
| Redis client for cache or key/value work | Redis | suvera/winter-modules |
| Memcached client for lightweight caching | Memcache | suvera/winter-modules |
| Embedded in-memory DB launched with the app (Redis, Ignite, Memcached, Hazelcast) | Memdb | suvera/winter-memdb |
| Event streaming and pub/sub | Kafka | suvera/winter-modules |
| Managed AWS message queue | SQS | suvera/winter-modules |
| S3-compatible object storage | S3 | suvera/winter-modules |
| Full-text search and analytics | OpenSearch | suvera/winter-modules |
| Background task orchestration across nodes | DTCE | suvera/winter-modules |
| Service discovery (Consul or Netflix Eureka) | Eureka | suvera/winter-eureka |
| Application security policies | Security (planned) | suvera/winter-modules |
Grouped by domain
Section titled “Grouped by domain”Client libraries that connect to external data stores.
Messaging
Section titled “Messaging”Storage & search
Section titled “Storage & search”Distributed systems
Section titled “Distributed systems”Embedded in-memory servers EXPERIMENTAL
Section titled “Embedded in-memory servers EXPERIMENTAL”Libraries where the framework launches and manages the server process as part of the app lifecycle.
Planned
Section titled “Planned”Installation patterns
Section titled “Installation patterns”Winter libraries are distributed as three separate composer packages so you install only what you need:
# Framework onlycomposer require suvera/winter-boot
# Framework plus one standalone librarycomposer require suvera/winter-boot suvera/winter-doctrine
# Framework plus the 8-module monorepocomposer require suvera/winter-boot suvera/winter-modulesPHP extension matrix
Section titled “PHP extension matrix”Some libraries require additional PHP extensions. Install them before enabling the module.
| Library | Required extensions | Optional |
|---|---|---|
| Doctrine | one of pdo_sqlite, pdo_mysql, pdo_pgsql, pdo_sqlsrv, pdo_oci |
|
| Redis | redis (phpredis) |
|
| Memcache | memcached or memcache |
|
| Memdb | swoole, posix; plus the engine’s own binary on PATH |
redis, memcached |
| Kafka | swoole, rdkafka |
|
| SQS | swoole |
|
| S3 | none (uses aws/aws-sdk-php) |
|
| OpenSearch | none (uses opensearch-project/opensearch-php) |
|
| DTCE | swoole; plus redis or rdkafka depending on backend |
|
| Eureka | swoole |
Enabling a library
Section titled “Enabling a library”Every library plugs in through the same module system. Declare the module class in your application.yml under modules::
modules: - module: 'dev\winterframework\kafka\KafkaModule' enabled: true configFile: 'config/kafka-config.yml'Read The Module System for the full contract, load order, and how to build your own modules.