Composer Setup für REDAXO
Quell-ID: GitHub Discussion #4
Use Case
REDAXO-Projekte sollen mit Composer verwaltet werden, um AddOns und Abhängigkeiten zentral zu steuern und CI/CD-Prozesse zu ermöglichen.
Verwendete AddOns
- REDAXO Core
- Potentiell: Satis für eigenes Composer-Repository
Zielbeschreibung
Die REDAXO-Installation soll vollständig über Composer verwaltbar sein, inklusive Core- und AddOn-Updates.
Problemstellung
Aktuell gibt es einige Herausforderungen:
- Das Backend prüft Zugriffsrechte auf Ordner via Ajax
- AddOns haben keine standardisierte
composer.json - Es fehlt ein zentrales Composer-Repository für REDAXO-AddOns
Diskutierte Lösungsansätze
Variante 1: Datenbank-basiertes Update-Management
- AddOn- und Core-Versionen in der Datenbank speichern
- Update-Funktion für Benutzer mit entsprechenden Rechten
- Konsolen-Befehl für CI/CD-Prozesse
Variante 2: Eigenes Composer-Repository
- AddOns erhalten eine
composer.jsonim Git-Repository - REDAXO-eigenes Composer-Repository via Satis
- Ähnlich wie wpackagist.org für WordPress
Aktueller Stand
Die vollständige Composer-Integration ist ein längerfristiges Ziel der REDAXO-Entwicklung. Stand heute empfiehlt sich für Projekte mit Composer-Anforderungen:
Empfohlener Ansatz für aktuelle Projekte
{
"name": "mein/redaxo-projekt",
"require": {
"php": ">=8.0"
},
"autoload": {
"psr-4": {
"Project\\": "redaxo/src/addons/project/lib/"
}
}
}
Alternative: Git Submodules
Für die Verwaltung von AddOns können Git Submodules verwendet werden:
git submodule add https://github.com/FriendsOfREDAXO/addon-name redaxo/src/addons/addon-name
Besserer Ansatz für die Zukunft
Die Community arbeitet an einer standardisierten Composer-Integration. Entwickler können ihre AddOns bereits jetzt vorbereiten:
composer.jsonim AddOn-Root anlegen- PSR-4 Autoloading konfigurieren
- Namespaces nach dem Schema
FriendsOfRedaxo\AddonNameverwenden
Weitere Informationen zur Namespace-Umstellung: Discussion #40