Adapter
Acht Infrastructure-Packages - PSR-kompatibel, ohne Framework-Kopplung, einzeln einsetzbar.
Die Adapter-Schicht implementiert die ausseren Ports der Hexagonalen Architektur und liefert konkrete Infrastruktur fur PHP-Anwendungen: Datenbankverbindungen, Caching, strukturiertes Logging, Event-Dispatching und Messaging. Jedes Package implementiert die in jardissupport/contracts definierten Interfaces und ist unabhangig vom restlichen Jardis-Stack einsetzbar - auch in bestehenden Projekten ohne DDD-Laufzeit.
Überblick
Adapter bilden die äußere Schicht der Hexagonalen Architektur. Sie implementieren Interfaces aus Contract und liefern konkrete Infrastruktur: Datenbankverbindungen, Caching, Logging, Events, HTTP, E-Mail, Messaging und Dateisysteme. Jedes Package ist eigenständig nutzbar: ohne Jardis-Core, ohne Framework.
GitHub: jardisAdapter
Packages
Cache
Multi-Layer Caching mit automatischem Write-Through: von In-Memory bis zur Datenbank. PSR-16 kompatibel, fünf Adapter (Memory, APCu, Redis, Database, Null), Namespace-Isolation.
composer require jardisadapter/cacheDatabase Connection
PDO-Verbindungsmanagement mit Connection-Pool, Read/Write-Splitting und Health-Checks. Unterstützt MySQL, PostgreSQL und SQLite.
composer require jardisadapter/dbconnectionEvent Dispatcher
Vier Klassen, null Magie: synchrones Event-Dispatching für Domain-Driven Design. PSR-14 kompatibel, Priority-Ordering, Type-Hierarchy-Matching, stoppbare Events.
composer require jardisadapter/eventdispatcherFilesystem
Lokales Dateisystem und S3 mit einer API: ohne AWS SDK, ohne Flysystem. Stream-Support, Visibility-Management, einheitliche Abstraktion.
composer require jardisadapter/filesystemHTTP Client
PSR-18 HTTP-Client mit Handler-Pipeline, Retry und eigener PSR-7-Implementierung: ohne Guzzle, ohne Symfony. Convenience-Methoden, Bearer/Basic-Auth, Exponential Backoff.
composer require jardisadapter/httpLogger
Strukturiertes Logging mit 20+ Handlern, fluenter Konfiguration und eingebauter Fehlerresilienz. PSR-3 kompatibel, File, Console, Redis, Slack, Loki und mehr.
composer require jardisadapter/loggerMailer
Direkter SMTP-Versand mit STARTTLS, Attachments und Connection-Keepalive: ohne Swiftmailer, ohne Symfony. HTML/Text, Retry, konfigurierbare Timeouts.
composer require jardisadapter/mailerMessaging
Multi-Transport Messaging mit Redis, Kafka, RabbitMQ, Database und InMemory: eine API für alle. Publisher/Consumer-Pattern, einheitliches Interface.
composer require jardisadapter/messagingGemeinsame Merkmale
- PSR-kompatibel — PSR-3, PSR-14, PSR-16, PSR-18 wo anwendbar
- Closure-Orchestrator-Pattern — konsistente Architektur in jedem Package
- Keine Framework-Kopplung — nutzbar mit oder ohne Jardis-Core
- Interfaces aus Contract — austauschbar gegen eigene Implementierungen