OXID und Composer 2: Best Practices für Modul-Management

oxid und composer

Composer 2 in OXID eShop-Projekten effizient einsetzen: Optimiertes Modul-Management für Entwickler

Die Einführung von Composer 2 hat die Arbeitsweise vieler Entwicklerteams im Zusammenhang mit PHP-Projekten nachhaltig verändert. Auch im Kontext des OXID eShop-Systems spielt Composer 2 eine zentrale Rolle, insbesondere wenn es um die Pflege, Installation und Verwaltung von Modulen geht. Dieser Beitrag richtet sich an erfahrene Entwickler und eCommerce-Spezialisten, die den OXID eShop im Enterprise- oder Professional-Umfeld einsetzen und ihre Workflows rund um Composer 2 und das Modul-Management professionalisieren möchten.

Warum Composer 2 für OXID eShop?

Composer 2 bietet gegenüber seinem Vorgänger signifikante Verbesserungen in Sachen Performance, Speicherverwaltung und Abhängigkeitsauflösung. Gerade im Kontext von komplexen OXID-Projekten mit mehreren Modulen, Custom Extensions und einer produktiven CI/CD Umgebung ist ein effizienter Composer-Workflow ein echter Wettbewerbsvorteil.

Der OXID eShop ab Version 6 ist vollständig Composer-basiert strukturiert, das bedeutet: Core-Dateien, Module, Themes, Sprachdateien und sogar Erweiterungen des Frameworks können sauber via composer.json integriert, verwaltet und versioniert werden. So wird eine klar strukturierte, updatefähige Architektur sichergestellt, die gerade bei größeren Shops von zentraler Bedeutung ist.

Best Practices für Modulpflege mit Composer 2

Ein durchdachter und nachhaltiger Umgang mit Composer 2 im OXID eShop-Umfeld beginnt mit der strategischen Planung der Abhängigkeiten und Modulquellen. Module sollten bevorzugt über Composer-Packages eingebunden werden, anstatt manuell in das Dateisystem kopiert zu werden. So profitieren Entwickler von einer kontrollierten Versionierung, automatisierten Updates und sauberer Trennung von Custom-Code und Dritthersteller-Software.

Private Repositories und satis/packagist als Modulquellen

Für unternehmensspezifische Code-Erweiterungen oder nicht öffentlich verfügbare Drittanbieter-Module empfiehlt es sich, ein internes Package-Repository aufzusetzen. Composer 2 arbeitet hervorragend mit satis oder einem privaten Packagist-Server. So lassen sich modulare Entwicklungen teamübergreifend steuern, testen und versionieren – ein echter Vorteil im DevOps-Prozess.

Gerade bei Shopprojekten mit mehreren parallelen Instanzen oder Entwicklungsumgebungen ist die Pflege der Abhängigkeiten über zentrale Repositories wichtig, um homogene Umgebungen sicherzustellen. Fehlerhafte manuelle Modulinstallationen gehören damit der Vergangenheit an.

composer.json sauber strukturieren

Die zentrale composer.json des OXID eShop ist das Steuerzentrum für alle abhängigen Pakete und Module. Best Practices empfehlen, produktive und Entwicklungsabhängigkeiten zu trennen. Composer 2 erlaubt über require und require-dev eine klare Aufteilung, z. B. wenn Testwerkzeuge oder Debugger wie phpunit oder xdebug nur in Entwicklungsumgebungen gebraucht werden.

Darüber hinaus sollte jede Modulabhängigkeit mit einer möglichst exakten Versionsspezifikation versehen werden. Semantische Versionierung schützt integrative Setups vor ungewollten Fehlinstallationen und hält die Produktionsumgebung stabil.

Composer Scripts gezielt einsetzen

In komplexeren Projekten oder automatisierten Deployment-Workflows bietet Composer die Möglichkeit, mit sogenannten „scripts“ individuelle Hooks vor und nach bestimmten Aktionen auszuführen. Diese Funktion ist im OXID-eCommerce-Kontext ideal, um z. B. nach einer Modulinstallation automatisch die Datenbankmigration durchzuführen, den Cache zu leeren oder Dateien in die richtigen Directories zu symlinken.

Ein Beispiel für ein häufig genutztes Composer-Script im OXID-Kontext wäre:


"scripts": {
  "post-install-cmd": [
    "vendor/bin/oe-console oe:module:install --all",
    "vendor/bin/oe-console oe:module:activate my-vendor/my-oxid-module"
  ]
}

Durch solche Automatisierung lässt sich nicht nur wertvolle Entwicklungszeit sparen, sondern auch die Fehleranfälligkeit im Betrieb deutlich reduzieren.

Versionierung und Testing bei Modul-Updates

Eine der häufigsten Herausforderungen im Betrieb eines OXID eShop-Systems ist das modulübergreifende Updaten von Abhängigkeiten. Die Kombination aus Composer 2 und einer Versionierung über ein dediziertes Git-Repository hilft dabei, Änderungen strukturiert zu tracken und rollbackfähig zu halten.

Vor jedem Update empfiehlt es sich, ein dediziertes Testing in einer Staging-Umgebung durchzuführen – idealerweise automatisiert. Abhängigkeiten und Composer-Locks sollten in der CI/Cd-Pipeline mit überprüft werden, um fehlerhafte Builds frühzeitig zu identifizieren. Hierzu kann auch ein toolgestütztes Dependency-Scannen sinnvoll sein, um z. B. Sicherheitslücken oder inkompatible PHP-Versionen zu erkennen.

Composer 2 im DevOps-Workflow

In professionellen OXID-Infrastrukturen wird Composer 2 meist integraler Bestandteil des Deployment-Prozesses. Es empfiehlt sich, ein Build-Environment zu verwenden, bei dem die composer install-Befehle entweder in Docker-Containern oder auf dedizierten Build-Servern laufen. So bleiben produktive Server schlank und sicher, während die eigentliche Kompositionslogik auf kontrollierten Laufzeitumgebungen stattfindet.

Composer 2 erzielt durch optimiertes Dependency Resolution und Caching (z. B. durch composer cache oder durch Repositories mit Precompiled Packages) deutlich schnellere Installationen. Das ist nicht nur angenehm in der Entwicklung, sondern verringert auch den Zeitbedarf bei Releases und Hotfixes signifikant.

Modul-Entwicklung nach OXID Standards

Wenn eigene Module für den OXID eShop entwickelt werden, empfiehlt es sich, diese direkt als Composer-kompatible Packages anzulegen. Durch die Verwendung des OXID-eigenen oxid-esales/oxideshop-module-skeleton wird von Anfang an eine ordnungsgemäße Struktur nach aktuellen Entwicklungsstandards sichergestellt.

Das Skeleton-Template bietet bereits eine sinnvolle Grundstruktur mit metadata.php, composer.json, Services.yaml und Tests. So wird sicher gestellt, dass die entwickelten Module auch langfristig wartbar bleiben und problemlos in neue Shopversionen migriert werden können.

Besonderes Augenmerk sollte auf die korrekte Definition von Abhängigkeiten (z. B. zu anderen Modulen oder dem Shop-Kern) gelegt werden. Eine falsch konfigurierte Modulbeschreibung kann schnell zu kryptischen Fehlermeldungen beim Deployment führen.

Strategien für langfristige Modulpflege

Wer große oder fakturierende OXID-Projekte betreibt, sollte sich frühzeitig Gedanken über ein nachhaltiges Modul-Lifecycle-Management machen. Dazu gehört neben dem semantischen Versionieren auch eine durchdachte Dokumentation der Module (z. B. Changelogs, API-Dokumente) sowie automatisierte Tests.

Langfristige Modulpflege bedeutet auch, den Abhängigkeitsbaum regelmäßig zu prüfen, nicht mehr benötigte Module oder Libraries zu entfernen und Sicherheitsupdates zügig einzuspielen. Composer 2 unterstützt solche Wartungsaufgaben dank integriertem Abhängigkeitscheck (composer outdated) und Tools wie composer audit.

Fazit zur Nutzung von Composer 2 im OXID eShop

Die Verschmelzung von Composer 2 mit der Architektur des OXID eShop hat die Arbeitsweise von Entwicklerteams revolutioniert. Wer die neuen Möglichkeiten konsequent einsetzt, profitiert von einer deutlich erhöhten Entwicklungsqualität, geringeren Deployment-Risiken und einer sauber wartbaren Shop-Plattform. Module lassen sich effizient pflegen, automatisiert testen und versionieren – die ideale Basis für ein zukunftssicheres eCommerce-Projekt auf Basis von OXID.

Mit einem wohldefinierten Composer-Workflow, klaren Standards für Modulentwicklung und einer disziplinierten Pflege der Abhängigkeiten stellt sich OXID in einem modernen Technologie-Stack bestens auf. Gerade in Zeiten wachsender Komplexität im Onlinehandel ein unschätzbarer Wettbewerbsvorteil.

Unser Experte
Matthias Eggert ist seit über 14 Jahren im Online Marketing tätig und seit 6 Jahren Head of Online Marketing bei DIXENO . DIXENO ist an den Standorten Arnsberg, Paderborn, Hamburg und Berlin vertreten und verfügt über mehr als 50 Mitarbeiter. Neben seiner Tätigkeit als Head of Online Marketing ist Matthias Gründer von onlinemarketingberatung.de – Cruising Media. Sein Fokus liegt auf allen SEO relevanten Themen und er unterstützt Kunden von der Konzeption der richtigen Strategie, über die technische Umsetzung, bis zur detaillierten Analyse.