Zum Inhalt springen

Dein Projekt schreit Laravel. Nicht deine Domain.

Clean Architecture PHP bedeutet: die Business-Logik kennt das Framework nicht. Jardis generiert die konzentrischen Kreise nach Robert C. Martin als physische Ordnerstruktur, nicht als Architektur-Empfehlung.

Clean Architecture PHP scheitert nicht am Konzept, sondern an der Umsetzung.

Die Dependency Rule ist in 20 Minuten erklärt. Sie dauerhaft gegen Deadline-Druck, Frameworks und wechselnde Teams durchzuhalten, ist eine andere Sache.

Framework-Logik infiltriert die Domain

Ein Eloquent-Model hier, ein Laravel-Request-Objekt dort. Jede Abkürzung zieht Framework-Abhängigkeiten in die innersten Kreise. Nach einem Jahr ist die Domain ohne Laravel nicht mehr testbar.

Die Dependency Rule gilt nur im Gespräch

Alle kennen die Regel: Abhängigkeiten zeigen nach innen. Aber im Sprint-Stress greift der Handler direkt auf das Repository-Objekt zu, der Use Case importiert den Mailer. Die Regel lebt im Confluence-Wiki, nicht im Code.

Screaming Architecture schreit das falsche Wort

Robert C. Martin beschreibt es präzise: die Ordnerstruktur soll die Domain schreien, nicht das Framework. Aber das erste was neue Entwickler sehen, sind `app/Http`, `app/Models`, `app/Jobs`. Das Framework schreit. Die Domain flüstert.

Dependency Rule erzwungen. Nicht empfohlen.

Jardis generiert Clean Architecture PHP als physische Dateistruktur. Was nach innen zeigen muss, kann nicht nach außen zeigen.

DEPENDENCY RULE

Abhängigkeiten die nach innen zeigen, per Konstruktion

Jardis generiert die 3-Layer Entity-Hierarchie (Domain Entity, Aggregate Entity, BoundedContext Layer) in Namespaces, die strukturell keine Framework-Abhängigkeiten erlauben. Use Cases kennen nur Domain-Objekte. Infrastruktur implementiert Interfaces, die die Domain definiert. Nicht umgekehrt.

SCREAMING ARCHITECTURE

Die Ordnerstruktur schreit die Domain

Für jeden Bounded Context generiert Jardis eine Verzeichnisstruktur, die mit dem Domain-Namen beginnt, nicht mit dem Framework-Konzept. Commands, Queries, Domain Events, Entities: jedes Konzept hat seinen Platz in der Hierarchie. Ein Entwickler, der den Code öffnet, versteht sofort, womit er es zu tun hat.

FRAMEWORK-UNABHÄNGIGKEIT

Laravel oder Symfony: die Domain merkt es nicht

Jardis ist framework-agnostisch. Ob Laravel, Symfony oder ein anderes PHP-Framework: die generierten Domain- und Use-Case-Schichten haben keine Framework-Imports. Infrastruktur-Adapter koppeln die äußeren Kreise ans Framework. Die inneren Kreise bleiben frei.

Sieh selbst, was aus drei Dateien entsteht.

Drei Definitionsdateien rein, ein kompletter Bounded Context raus. Klick dich durch den generierten Code.

E-Commerce / Sales
schema.yaml
# Database Schema — Sales Bounded Context
# This file defines the persistent storage structure.

schema:
  domain: ECommerce
  boundedContext: Sales

tables:
  order:
    columns:
      id:
        type: integer
        primary: true
        autoIncrement: true
      public_id:
        type: uuid7
        unique: true
      customer_email:
        type: string
        length: 255
      status:
        type: string
        length: 32
        default: "draft"
      total_amount:
        type: integer
      currency:
        type: string
        length: 3
        default: "EUR"
      created_at:
        type: datetime
      updated_at:
        type: datetime
        nullable: true

  order_item:
    columns:
      id:
        type: integer
        primary: true
        autoIncrement: true
      order_id:
        type: integer
        foreignKey:
          table: order
          column: id
          onDelete: cascade
      product_name:
        type: string
        length: 255
      sku:
        type: string
        length: 64
      quantity:
        type: integer
      unit_price:
        type: integer
      line_total:
        type: integer
Dateien
Definitions (Input)
Generated Code (Output)
CLEAN ARCHITECTURE
100%
Architektur-konformJeder generierte Bounded Context folgt der Dependency Rule. Domain-Schicht ohne Framework-Imports, Use Cases ohne Infrastruktur-Abhängigkeiten. Strukturell garantiert, nicht überprüft.
0
Framework-Imports in der Domain
50%
schnellere Feature-Entwicklung
BUILDER OUTPUT
80%
Code generiertEntity-Hierarchie, Commands, Queries, Domain Events, API Contracts, Repository Pipeline, Validators. Euer Team schreibt die Business-Logik in den Use Cases.

Warum Teams mit Jardis auf Clean Architecture PHP setzen.

Weil die Dependency Rule nicht durch Code Reviews sichergestellt werden kann, sondern durch die Struktur.

> Testbarkeit

Business-Logik ohne Framework testbar

Use Cases und Domain-Objekte haben keine Framework-Abhängigkeiten. Unit Tests brauchen keinen Laravel-Bootstrapping-Overhead. Schnelle, isolierte Tests für die Logik, die wirklich zählt.

> Framework-Flexibilität

Frameworks austauschen, Domain bleibt

Die inneren Kreise kennen das Framework nicht. Infrastruktur-Adapter koppeln nach außen. Wenn das Framework wechselt, ändert sich die Infrastruktur-Schicht, nicht die Business-Logik.

> Entwicklungsgeschwindigkeit

Neue Features ohne Architektur-Diskussionen

Wo ein neues Feature hingehört, ist durch die Struktur vorgegeben. Kein Debatte: Controller oder Use Case? Repository oder Domain Service? Die Struktur beantwortet das.

Clean Architecture PHP als Struktur, nicht als Vorsatz?

Auf die Waitlist

Struktur kostet weniger als Chaos.

Kostenloser Trial

Teste Jardis 7 Tage kostenlos

Lass Jardis an deiner echten Domäne los. Discovery, Struktur und dein erster Platform Build.

Join Waitlist
20 Discovery Runs
5 Structure Builds
1 Platform Build
Alle Jardis Packages als Open Source
Jardis Base
29 €pro Monat

Die komplette DDD-Architektur mit allen Klassen und Contracts. Dein Team schreibt Features, nicht Infrastruktur.

Join Waitlist
Unlimited Discovery Runs
Unlimited Structure Builds
Alle 26 Jardis Packages enthalten
PHPStan Level 8 von Anfang an
Jardis Pro
180 €pro Monat

Die komplette Business-Logik mit Handlern, Validierung und Pipelines. Was früher ein Sprint war, ist jetzt ein Build.

Join Waitlist
Alles aus Jardis Base
Commands, Queries, Events direkt implementiert
Platform Code in Sekunden statt Wochen
Weitere Runs für 89 € einzeln
Enterprise

Mehr als 20 Platform Builds pro Monat?

Lass uns sprechen

Sei dabei, wenn Jardis startet.

Trag dich ein. Du bekommst Zugang, sobald wir live gehen. Inklusive kostenlosem Trial.

100+ Entwickler warten bereits auf den Launch

Neugierig, wie Jardis funktioniert?

Jardis entdecken

Häufige Fragen

Antworten zu Clean Architecture PHP mit Jardis.

Hexagonal Architecture fokussiert auf Ports & Adapters und physische Layer-Trennung. Clean Architecture fokussiert auf die Dependency Rule: Abhängigkeiten zeigen nach innen, niemals nach außen. Jardis erzwingt beides, aber das Narrativ ist unterschiedlich: hier geht es um Framework-Unabhängigkeit und Screaming Architecture.