BUILD CONNECT EXTEND

So benutzt
du Nexum.

Nexum ergänzt Symfony um eine modulare Architektur. Modules bündeln fachlich zusammengehörigen Code. Projects gruppieren Anwendungsbereiche.

Terminal mit Nexum-Installation, Diagnose und Status

ERSTE SCHRITTE

Wenig Konfiguration. Klare Konventionen.

Nach der einmaligen Integration entsteht Architektur durch PHP-Descriptoren und nachvollziehbare Verzeichnisse.

Flex-StatusBis zur Veröffentlichung der Recipe werden Bundle, Grundkonfiguration und Routenimport einmalig ergänzt. Danach übernimmt Flex diesen Teil automatisch.

  1. 01

    Installieren

    Das einzelne Nexum-Package in eine Symfony-7.4-Anwendung einbinden.

    composer require benjaminoeffinger/nexum
  2. 02

    Modul anlegen

    Eine normale PHP-Klasse mit dem Attribut NexumModule beschreibt den fachlichen Bereich.

    #[NexumModule]
    final class BlogModule
  3. 03

    Nexum entdeckt es automatisch

    Nexum findet Descriptor, Services, Controller und Entities beim Container-Build.

    src/Module/Blog/
  4. 04

    Symfony wie gewohnt verwenden

    Autowiring, Commands, Events und Messenger funktionieren weiterhin wie gewohnt.

    final class BlogService
  5. 05

    Architektur prüfen

    Den kompilierten Module- und Project-Graph read-only kontrollieren.

    php bin/console nexum:architecture

DAS MODELL

Architektur zuerst.
Funktionen nach Bedarf.

Nexum beginnt nicht bei einer API, sondern bei der Organisation deiner Symfony-Anwendung.

01

Architecture

Modules, Shared Modules, private Modules und optionale Projects.

02

Infrastructure

Entity, Doctrine, Security, HTTP, Messenger und weitere Bausteine.

03

Optionale APIs

Bewusst aktivierbare REST-, Management- und Security-Oberflächen.

Direkt nutzbar, frei kombinierbar. Reine Komponenten und Basisklassen können ohne Project-Kontext verwendet werden. Eigene Symfony-Lösungen und Provider-Adapter bleiben ausdrücklich möglich.

MODUL-ANATOMIE

Alles Fachliche an einem Ort.

Das Blog-Modul zeigt, wie zusammengehörender Code übersichtlich gebündelt wird.

Struktur eines Blog-Moduls

Controller

Behandelt Requests und gibt Responses zurück.

Entity

Deine Domain-Modelle, z. B. für Blog-Posts.

Repository

Datenzugriff mit eigenen Abfragen und Logik.

Service

Geschäftslogik, wiederverwendbar und testbar.

API optional

Eigene Endpunkte, z. B. für eine API-Version des Moduls.

Security optional

Rechte und Zugriffslogik, z. B. Voter.

Command

Konsolenbefehle mit normaler Symfony-Autoconfiguration.

OPTIONALE PROJECTS

Mehrere Bereiche.
Eine Symfony-Anwendung.

Projects gruppieren Shared Modules und private Funktionen zu hostbasierten Oberflächen. Ohne Project-Descriptor bleibt Nexum bewusst im einfachen Application Mode.

Shared User, Media oder Payment wiederverwenden.

Privat Checkout oder Dashboard nur einem Project zuordnen.

Multi-Domain Storefront, Admin und API über eindeutige Hosts auflösen.

Symfony ApplicationProject Mode
SHARED MODULES

User

Media

Payment

PROJECTS

Storefrontshop.example.de · Checkout

Adminadmin.example.de · Dashboard

APIapi.example.de

#[NexumProject(
    modules: [UserModule::class, MediaModule::class],
)]
final class StorefrontProject {}

Projects trennen Routen und Oberflächen, nicht automatisch Daten oder Mandanten.

SYMFONY BLEIBT SYMFONY

Bestehende Features weiter nutzen.

Nexum ergänzt, statt zu ersetzen. Die bekannten Symfony-Werkzeuge funktionieren weiterhin wie gewohnt.

Routing

Attribute, YAML oder PHP – wie gewohnt.

Dependency Injection

Services, Autowiring, Compiler-Passes.

Doctrine

Entities, Migrations, Repositories.

Twig

Templates und Template-Logik.

Security

Firewall, Voter, Access Control.

Commands

Eigene Console Commands.

Forms

Formulare und Validierung.

Events

Events und Event Subscriber.

BEREIT FÜR DAS ERSTE MODUL?

Starte klein. Werde klarer.

Probiere Nexum in einem abgegrenzten Modul aus und erweitere die Struktur in deinem eigenen Tempo.