Skip to content

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.

bash
composer require jardissupport/auth

ClassVersion

Versioned classes via namespace injection: no renaming, no configuration files, no magic. Enables parallel class versions at runtime.

bash
composer require jardissupport/classversion

Contracts

All interfaces of the Jardis platform: one package, zero implementation. Defines the contracts between Core, Support and Adapter.

bash
composer require jardissupport/contracts

Data

Entity hydration, change tracking and identity generation: the bridge between database and domain. FieldMapper, snapshots, UUID support.

bash
composer require jardissupport/data

DbQuery

Write SQL that runs on any database: type-safe, fluent and injection-free. CTEs, window functions, subqueries, multi-dialect support.

bash
composer require jardissupport/dbquery

DotEnv

Configuration that thinks ahead: typed, modular and secure. Loads .env files with type casting and reference resolution.

bash
composer require jardissupport/dotenv

Factory

PSR-11 container with three-stage resolution: from pre-registration through backend delegation to reflection. Minimal container without auto-wiring magic.

bash
composer require jardissupport/factory

Repository

Generic CRUD repository with raw-data principle, read/write splitting and three PK strategies. Foundation for domain-specific repositories.

bash
composer require jardissupport/repository

Scheduling

Cron expressions and task scheduling with fluent API: define, don't execute. Cron parsing, tags, priorities, validation.

bash
composer require jardissupport/scheduling

Secret

Encrypted values in .env files: decrypted only at load time, never stored in plaintext. AES-256-GCM and Sodium.

bash
composer require jardissupport/secret

Validation

Object graph validation with 21 built-in validators, fluent field configuration and automatic traversal. Composite pattern for nested structures.

bash
composer require jardissupport/validation

Workflow

Directed workflow engine with status-based routing, automatic data accumulation and builder API. Multi-step processes without a framework.

bash
composer require jardissupport/workflow

Common 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