Support
Cross-cutting packages for the application layer - from data structures to repositories to workflows.
Support packages form the middle layer between the Core runtime and the Adapter implementations. They provide reusable building blocks for common requirements in PHP projects following Domain-Driven Design: type-safe query builders, generic repositories with read/write splitting, object validation, PSR-11 containers, encrypted configuration and more. All packages are individually installable via Composer and introduce no dependencies on the adapter layer.
Overview
Support packages provide the building blocks between Core and Adapter: query builders, repositories, validation, hydration, factories, auth and more. They are independent of each other and follow the Hexagonal Architecture: Support knows about Core, but never about Adapter.
GitHub: jardisSupport
Packages
Auth
Four classes, opaque tokens, RBAC as value objects: authentication without framework coupling. Session management, password hashing, guard pattern.
composer require jardissupport/authClassVersion
Versioned classes via namespace injection: no renaming, no configuration files, no magic. Enables parallel class versions at runtime.
composer require jardissupport/classversionContracts
All interfaces of the Jardis platform: one package, zero implementation. Defines the contracts between Core, Support and Adapter.
composer require jardissupport/contractsData
Entity hydration, change tracking and identity generation: the bridge between database and domain. FieldMapper, snapshots, UUID support.
composer require jardissupport/dataDbQuery
Write SQL that runs on any database: type-safe, fluent and injection-free. CTEs, window functions, subqueries, multi-dialect support.
composer require jardissupport/dbqueryDotEnv
Configuration that thinks ahead: typed, modular and secure. Loads .env files with type casting and reference resolution.
composer require jardissupport/dotenvFactory
PSR-11 container with three-stage resolution: from pre-registration through backend delegation to reflection. Minimal container without auto-wiring magic.
composer require jardissupport/factoryRepository
Generic CRUD repository with raw-data principle, read/write splitting and three PK strategies. Foundation for domain-specific repositories.
composer require jardissupport/repositoryScheduling
Cron expressions and task scheduling with fluent API: define, don't execute. Cron parsing, tags, priorities, validation.
composer require jardissupport/schedulingSecret
Encrypted values in .env files: decrypted only at load time, never stored in plaintext. AES-256-GCM and Sodium.
composer require jardissupport/secretValidation
Object graph validation with 21 built-in validators, fluent field configuration and automatic traversal. Composite pattern for nested structures.
composer require jardissupport/validationWorkflow
Directed workflow engine with status-based routing, automatic data accumulation and builder API. Multi-step processes without a framework.
composer require jardissupport/workflowCommon Traits
- Independent of each other — every package is individually installable
- Closure-Orchestrator Pattern — consistent architecture
- No adapter dependencies — Support never imports infrastructure code
- Interfaces in Contract — formal contracts instead of implicit coupling