JARDIS — Just A Reliable Domain Integration System — is a platform for Domain-Driven Design in the PHP ecosystem. You model your domain; Jardis generates the production-ready hexagonal code. The tactical implementation work that recurs with every aggregate is what Jardis handles. The modelling stays human.
"You build features. Not infrastructure." → jardis.io
jardisSupport provides the application and support layer that Jardis-generated DDD applications are built with. It includes consolidated contract interfaces for all Jardis packages, cross-cutting capabilities (auth, validation, scheduling, workflow), and the persistence and data-mapping building blocks that generated repositories and Use Cases build on.
These packages are MIT-licensed. The platform that generates hexagonal DDD code for PHP is available at jardis.io.
| Package | Description |
|---|---|
| contract | Consolidated contract interfaces for all Jardis packages — Kernel, Data, Repository, DbQuery, Messaging, Validation, Workflow, and more |
| auth | Opaque token management, session handling, password hashing, and role-based access control for PHP DDD applications — framework-free, no JWT, no external dependencies |
| classVersion | Runtime class versioning via namespace injection with configurable fallback chains and proxy caching |
| data | Entity hydration with change tracking, bidirectional field mapping, and identity generation (UUID v4/v5/v7, NanoID) |
| dbQuery | Fluent SQL query builder with CTEs, window functions, subqueries, and JSON support for MySQL, MariaDB, PostgreSQL, and SQLite |
| dotenv | Environment file loader with cascading overrides, variable interpolation, type casting, and include directives |
| factory | PSR-11 container with pre-registered instances and reflection fallback |
| repository | Repository pattern for PHP — generic CRUD with raw-data access, read/write splitting, and pluggable primary-key strategies; the persistence layer Jardis-generated repositories build on |
| scheduling | Cron expression parsing and task scheduling with fluent API and timezone support |
| secret | Secret resolution for encrypted configuration values using AES-256-GCM and Sodium with key provider abstraction |
| validation | Object graph validation with recursive traversal, 21 built-in validators, and fluent field rule composition |
| workflow | Directed workflow engine with status-based transitions, automatic data accumulation, and builder API |
No framework code enters the domain. jardisSupport/contract defines the interfaces; adapters implement them. Framework choice stays free — at the infrastructure boundary, not buried in the application layer. "Works with any framework."
PHPStan Level 8 · Code Coverage ≥ 80 % · PSR-4/PSR-12 · MIT License