Hallo zusammen,
leider bisher keine Tips. Vielleicht ist es ja um zu viele Ecken gedacht.
Trotzdem habe ich mir eine eigene Lösung ausgeknobelt, die alle Vorteile
- verschiedene phpStorm Projekte mit Git-Versionierung in phpStorm Projekt
- Zugriff auf alle Projekte über ein Projekt ohne Git-Vorteile zu verlieren
- Anbindung an verschiedene Repositories (Github/Bitbucket)
- Einfachster Ablauf von Debugging/Developing, wenn System einmal eingerichtet
- Saubere Commits für jede Extension getrennt
- Verwaltung über Packagist oder Satis
vereint. Ich schreibe sie hier einfach rein, falls auch jemand anders die selben "Probleme" haben sollte. Vielleicht schreibt ja auch der eine oder die andere Ihre Vorgehensweise.
Voraussetzung:
Contao mit Composer (ER3)
Repositories ohne Auto-Aktualisierungs-Hook oder mit Satis gebündelt
Ich habe für mich eine gangbare Lösung für Projekte (Extension) in Projekt (lokaler Webserver mit den versch. Extensions):
Zur Lösung:
1. lokales Projekt in Directory ausserhalb von Webserver mit Github oder Bitbucket synchronisieren (pushen). In jedem Projektordner für jede Extension ist eine eigene Versions-Kontrolle über ein .git Ordner eingefügt.
2. Über das Contao-Backend und dessen Packet-Management (PM) die Extensions hinzufügen.
(über UI oder composer.json Wichtig: statt »dist« auf »source« setzten, damit symlinks in den TL_ROOT/system/modules Ordner vom TL_ROOT/composer/vendor Ordner gemacht werden, und dev-master für die Paket-Wahl )
Nun ist auf dem lokalen Webserver die jeweilige Extension-Version die auf GH/BB hinterlegt ist
3. Nun über ein symlink (auf meinem OS X System hat dies nicht funktioniert (Fehlermeldung), da das PM die Vendor-Ordner und Dateien dann eben nicht mehr als Ordner/Dateien erkennt. Daher benutzte ich Hardlink's.
Danach steht einem Aktualisieren von den Paketen über PM nichts mehr im Wege (wenn die eigenen Extension-Repo's keinen Auto-Aktualisierungs-Hook in Services gesetzt bekommen haben oder über ein statisches Satis-Repository verwaltet werden). So funktioniert die Versionierung mit GIT für jedes Extension-Projekt innerhalb des Website-Projekts auf dem lokalen Server.
Alle commit und push's /pull's werden mit dem richtigen Repo ausgetauscht. Und auf dem lokalen Debugging-System läuft immer die aktuelle Version der aktuellen.
Sollen Live-Server mit einer neuen Version der Extension versorgt, muss nur noch eine Version ge'tag't werden und das Packagist oder Satis zur Aktualisierung aufgefordert werden.
Ist Packagist oder das Satis-Repo aktualisiert, wirft PM beim nächsten Aktualisieren einen Fehler.
Am Einfachsten ist es die symlinks/hardlinks aus dem vendor Verzeichnis zu löschen, bevor eine Aktualisierung angeworfen wird. Dann wird auch der lokale Debugging-Webserver wieder mit den neusten Versionen versorgt. Diese danach wieder mit Hardlinks überschreiben.
Womöglich suche ich viel zu weit an unnötig komplizierten Orten.
Wenn jemand anders einen völlig anderen und vor allem einfacheren Ablauf kennt, würde ich mich sehr darüber freuen.
Grüße Martin
Contao-Composer-Extension-Developing.jpg
Lesezeichen