diff --git a/README.md b/README.md index f23cc4b..d243102 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ [![PHPStan Level](https://img.shields.io/badge/PHPStan-Level%208-brightgreen.svg)](phpstan.neon) [![PSR-12](https://img.shields.io/badge/Code%20Style-PSR--12-blue.svg)](phpcs.xml) -> Part of the **[Jardis Business Platform](https://jardis.io)** — Enterprise-grade PHP components for Domain-Driven Design +> Part of **[Jardis](https://jardis.io)** — the Domain-Driven Design platform for PHP. You model your domain; Jardis generates the production-ready hexagonal code (DTOs, Command/Query handlers, repositories, persistence). This package is part of the open-source foundation that generated code runs on. -Three focused services for entity data operations: **Hydration** transforms raw database rows into typed PHP objects with automatic change tracking. **FieldMapper** provides bidirectional array-key mapping between domain and database names. **Identity** generates unique identifiers (UUID v4/v5/v7, NanoID). +Three focused services for entity hydration and DTO mapping in PHP: **Hydration** transforms raw database rows into typed PHP objects — filling the entities and DTOs Jardis generates — with automatic change tracking. **FieldMapper** provides bidirectional array-key mapping between domain and database names. **Identity** generates unique identifiers (UUID v4/v5/v7, NanoID). --- diff --git a/composer.json b/composer.json index 345951e..b0a7fd8 100644 --- a/composer.json +++ b/composer.json @@ -39,13 +39,17 @@ "data", "entity", "hydration", + "entity-hydration", "change-tracking", "snapshot", "field-mapping", "uuid", "nanoid", "identity", + "php", + "domain-driven-design", + "hexagonal-architecture", "jardis", - "Headgent" + "headgent" ] } diff --git a/support/makefile/hooks.mk b/support/makefile/hooks.mk index fc38374..902809e 100644 --- a/support/makefile/hooks.mk +++ b/support/makefile/hooks.mk @@ -7,6 +7,14 @@ install-hooks: ## Install git hooks (pre-commit + pre-push) @echo '# Jardis Pre-Push Hook — Quality Gate' >> .git/hooks/pre-push @echo 'set -e' >> .git/hooks/pre-push @echo 'echo "=== Jardis Pre-Push Quality Gate ==="' >> .git/hooks/pre-push + @echo '# Doku-Fast-Path: keine *.php geaendert -> PHP-Gates ueberspringen (kein --no-verify, der Hook entscheidet korrekt)' >> .git/hooks/pre-push + @echo 'base="$$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null || echo origin/develop)"' >> .git/hooks/pre-push + @echo 'changed="$$(git diff --name-only "$$base"...HEAD 2>/dev/null)"' >> .git/hooks/pre-push + @echo 'if ! echo "$$changed" | grep -q "[.]php$$"; then' >> .git/hooks/pre-push + @echo ' echo ">>> Nur Doku/Metadaten geaendert (keine *.php) — phpcs/phpstan/phpunit uebersprungen"' >> .git/hooks/pre-push + @echo ' echo "=== Quality Gate (Doku-Fast-Path) bestanden ==="' >> .git/hooks/pre-push + @echo ' exit 0' >> .git/hooks/pre-push + @echo 'fi' >> .git/hooks/pre-push @echo 'echo ">>> make phpcs"' >> .git/hooks/pre-push @echo 'make phpcs || { echo "PHPCS fehlgeschlagen — Push abgebrochen"; exit 1; }' >> .git/hooks/pre-push @echo 'echo ">>> make phpstan"' >> .git/hooks/pre-push