diff --git a/README.md b/README.md index a140a48..20e0710 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@ [![PSR-12](https://img.shields.io/badge/Code%20Style-PSR--12-blue.svg)](phpcs.xml) [![Coverage](https://img.shields.io/badge/Coverage-96.69%25-brightgreen.svg)](https://github.com/jardisSupport/classversion) -> 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. -Runtime class versioning via namespace injection. Load different implementations of the same class by version label — without changing call sites. Configure fallback chains so a missing version silently degrades to the previous one. Register proxy instances for hot-swapping at test or runtime. Deploy new logic versions without breaking existing code. +Runtime class versioning for PHP via namespace injection — the mechanism that lets Jardis-generated hexagonal code grow through versions without breaking call sites. Load different implementations of the same class by version label, configure fallback chains so a missing version silently degrades to the previous one, register proxy instances for hot-swapping at test or runtime, and deploy new logic without touching existing code. --- diff --git a/composer.json b/composer.json index 9a3c9c3..df9ebf3 100644 --- a/composer.json +++ b/composer.json @@ -37,10 +37,13 @@ }, "keywords": [ "versioning", + "class-versioning", "classversion", - "version class loader", + "class-loading", "loader", - "domain driven design", + "php", + "domain-driven-design", + "hexagonal-architecture", "jardissupport", "jardis", "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