Presse & Ankündigungen Presse & Ankündigungen Presse & Ankündigungen
Kategorie
Presse & Ankündigungen

Lawoo – Ein neues Level von Modularität im Laravel-Ökosystem

Besonders im ERP-Umfeld entstehen ständig neue Kundenanforderungen, die ein System nicht nur ergänzen, sondern oft tiefgreifend verändern.

Die Herausforderung besteht darin, diese individuellen Anpassungen umzusetzen, ohne den ursprünglichen Code anzutasten oder zukünftige Updates zu gefährden. Genau an diesem Punkt setzt Lawoo an: ein Framework auf Basis von Laravel, das Modularität so konsequent denkt, wie man es sonst nur von großen Systemen wie Odoo kennt – jedoch moderner, eleganter und vollständig Laravel-nativ.

Lawoo ist kein gewöhnliches Laravel-Projekt. Es ist ein Framework, das das modulare Denken auf eine eigene Ebene hebt und sämtliche Kernfunktionen in klar voneinander getrennte Module auslagert. Dabei bleibt das darunterliegende Laravel vollständig unberührt. Keine Datei im Laravel-Core wird modifiziert, keine Migration überschrieben, kein Controller ersetzt. Lawoo nutzt den Laravel-Kern, ohne ihn zu manipulieren – ein großer Vorteil, wenn es um langfristige Wartbarkeit, Updatefähigkeit und Stabilität geht.

Kernprinzipien der Modularität in Lawoo

Der wichtigste Gedanke hinter Lawoo ist das Schaffen einer Umgebung, in der jede Funktion als Modul existiert, das unabhängig entwickelt, erweitert oder ersetzt werden kann. Module sind vollständig isoliert und können übereinandergelegt werden wie Schichten, die sich gegenseitig ergänzen. Dadurch entsteht ein System, in dem jede Funktion unabhängig voneinander deaktiviert, erweitert oder überschrieben werden kann, ohne dass dabei der Kern des Frameworks verändert wird.

Vendor-Module: Die Basis von Lawoo

Alle Standardfunktionen von Lawoo befinden sich in eigenen Vendor-Paketen im Verzeichnis vendor/lawoo-io/lawoo. Diese Module enthalten alles, was ein typisches ERP-System benötigt: Datenbankmigrationen, Modelle, Services, Policies, Konfigurationen und grafische Oberflächen auf Livewire-Basis. Jedes dieser Module ist in sich geschlossen und definiert seine Funktion klar. Beim Start des Systems erkennt Lawoo diese Module automatisch und registriert sie mitsamt ihren Abhängigkeiten, wobei sichergestellt wird, dass Module erst dann geladen werden, wenn jene Module verfügbar sind, von denen sie abhängen.

Individualisierungsmodule im /root/modulesVerzeichnis

Besonders stark wird Lawoo durch das Verzeichnis /root/modules, das bei der Installation des Systems automatisch erstellt wird. Dieses Verzeichnis dient zur individuellen Anpassung eines Projektes. Ein Kunde benötigt zusätzliche Felder im Kontaktmodul? Ein Unternehmen möchte eigene Automatisierungsregeln hinterlegen? Externe Integrationen sollen eingebunden werden? All das passiert nicht im Core, nicht in Vendor-Modulen – sondern in eigenen, individuell entwickelten Projektmodulen.

Ein solches Modul funktioniert exakt wie ein offizielles Lawoo-Modul. Es kann Migrationsdateien enthalten, eigene Models oder Model-Erweiterungen bereitstellen, UI-Elemente überschreiben oder erweitern, Logik anpassen oder zusätzliche Funktionen ergänzen. Der Kern bleibt unberührt, und das gesamte Projekt bleibt update-sicher. Wird ein solches Modul deaktiviert oder gelöscht, fällt das System automatisch auf das ursprüngliche Verhalten zurück.

Layered Overrides – Das Herzstück von Lawoo

Eine der beeindruckendsten Eigenschaften des Frameworks ist das Layering-Konzept. Es ermöglicht Modulen, bestehende Funktionen zu erweitern oder zu überschreiben, ohne jemals den Originalcode zu berühren. Ein Modul kann zum Beispiel das User Model erweitern und Laravel mitteilen, dass ein angepasstes Model verwendet werden soll – und zwar einfach über Konfiguration:

config(['auth.providers.users.model' => \Modules\Core\Models\UserExtended::class]);

Das gleiche Prinzip gilt für Livewire-Views, Services oder Datenbankstrukturen. Views können durch zusätzliche Layer verändert werden, sodass das Original weiterhin existiert, aber das erweiternde Modul die Darstellung oder das Verhalten verändert. Selbst Datenbanktabellen können durch zusätzliche Migrationen erweitert werden, ohne dass die Originalmigration angepasst oder überschrieben wird.

Services und Interfaces innerhalb der Modularität

Obwohl Lawoo nicht zwingend auf Interfaces angewiesen ist, profitieren viele Modularchitekturen von ihnen. Besonders im Bereich der Kommunikation, etwa beim Zugriff auf externe Mail-Systeme, lassen sich Services dadurch sauber voneinander trennen und austauschen. Das System kann beispielsweise standardmäßig IMAP bereitstellen, während zusätzliche Module Gmail oder Exchange anbieten. Durch Interface-Verträge können diese Services beliebig ausgetauscht werden, ohne dass andere Module davon beeinflusst werden.

Livewire als visuelle Basis

Ein entscheidender Vorteil von Lawoo ist die konsequente Nutzung von Livewire. Sämtliche Formulare, Listen, Detailansichten und allgemein das gesamte UI basieren auf Livewire-Komponenten, die wiederum vollständig über Module erweitert werden können. Das macht die Benutzeroberfläche extrem flexibel. Ein Modul kann zusätzliche Felder ergänzen, Validierungsregeln anpassen oder bestimmte Elemente verstecken, ohne die ursprüngliche Komponente zu verändern.

Datenbank-Migrationen modular gedacht

In Lawoo werden Migrationen nicht global ausgeführt, sondern modulweise. Möchte ein Entwickler beispielsweise das Kontaktmodul um ein Geburtsdatum erweitern, geschieht das nicht innerhalb des Originalmoduls, sondern durch ein eigenes neues Modul im Root-Verzeichnis. Dieses Modul führt seine eigenen Migrationen aus, erweitert die Tabelle und fügt neue Funktionen hinzu. Die ursprüngliche Struktur bleibt intakt, und bei einer Deinstallation des Moduls kann der Zustand sauber wiederhergestellt werden.

Abhängigkeiten und automatisches Modul-Loading

Beim Start des Systems erkennt Lawoo alle verfügbaren Module und sortiert sie so, dass Abhängigkeiten automatisch berücksichtigt werden. Ein Modul, das auf das Web-Modul angewiesen ist, wird stets erst dann geladen, wenn das Web-Modul verfügbar ist. Dadurch wird garantiert, dass eine logische und technische Reihenfolge eingehalten wird. Anschließend werden die Layer angewendet, sodass Erweiterungen und Überschreibungen automatisch in der richtigen Reihenfolge ausgeführt werden.

Update-Sicherheit als Kerngedanke

Da Lawoo weder Laravel-Core-Dateien berührt noch eigene Funktionen direkt in Laravel integriert, sind Updates auf eine Weise möglich, die normalerweise in PHP-Projekten kaum machbar ist. Laravel kann jederzeit aktualisiert werden, Vendor-Module von Lawoo können neue Versionen erhalten, und individuelle Kundenmodule bleiben unangetastet. Das gesamte System ist darauf ausgelegt, über Jahre hinweg gepflegt, erweitert und modernisiert zu werden, ohne dass ein Update jemals die individuellen Anpassungen eines Kunden gefährdet.

Praxisbeispiel: Das modulare Mail-System

Ein anschauliches Beispiel für die Stärke des Modulsystems ist die Mail-Integration. Das Web-Modul liefert zunächst nur IMAP-Unterstützung. Sobald ein Gmail-Modul installiert wird, erweitert dieses das bestehende System um OAuth, zusätzliche Felder und eine eigene Synchronisationslogik. Ein Exchange-Modul kann denselben Mechanismus nutzen. Die Benutzeroberfläche passt sich automatisch an: Wird Gmail als Anbieter ausgewählt, erscheinen die spezifischen Felder für Gmail; wird Exchange ausgewählt, erscheinen Exchange-Felder. Der Mail-Service entscheidet anhand der Konfiguration automatisch, welcher Provider tatsächlich genutzt wird. Ein Eingriff in das Core-System ist dafür nicht erforderlich.

Praxisbeispiel: Erweiterung des Kontaktmoduls

Ein Unternehmen möchte die Kontaktverwaltung um ein neues Feld für Geburtsdaten erweitern und automatische Geburtstags-E-Mails versenden. Dazu wird ein neues Modul im /root/modules Verzeichnis erstellt. Dieses Modul ergänzt die Tabelle um ein weiteres Feld, erweitert die UI des Kontaktformulars und implementiert eine Automatisierung, die an bestimmten Tagen automatisch Benachrichtigungen oder E-Mails versendet. Wird dieses Modul entfernt, kehrt das System automatisch zum ursprünglichen Zustand zurück – ohne dass eine einzige Datei im Core verändert wurde.

Vorteile für Entwickler und Kunden

Für Entwickler bedeutet Lawoo eine neue Art, Projekte zu strukturieren: klar getrennt, sauber, erweiterbar und leicht wartbar. Module lassen sich teilen, wiederverwenden und isoliert entwickeln, ohne Gefahr zu laufen, den zentralen Code zu beschädigen. Kunden wiederum erhalten ein System, das exakt auf ihre Bedürfnisse zugeschnitten werden kann, ohne die Updatefähigkeit zu verlieren oder langfristige Probleme zu riskieren. Das System wächst mit ihren Anforderungen, ohne dass technische Schulden entstehen.

Fazit

Lawoo hebt das Konzept der Modularität im Laravel-Ökosystem auf ein neues Niveau. Die Trennung in Vendor-Module, kundenspezifische Root-Module und das mächtige Layering-System schafft eine Umgebung, die nicht nur modern, sondern auch langfristig nachhaltig ist. Lawoo ist kein weiteres Laravel-Projekt, sondern ein ausgewachsenes Framework, das auf Laravel aufsetzt, ohne sich in seine Strukturen einzumischen. Es ist ein Framework, das update-sicher, modular und zukunftsfähig ist – und es macht die Entwicklung von ERP-ähnlichen Anwendungen so flexibel wie nie zuvor.

AK
Alexander Kröker
05. December 2025
Lawoo Logo