Artikel
von Patrick Froch

Contao 4: Installation von Erweiterungen - Lokal

In diesem Artikel geht es darum, Erweiterungen lokal per Kopie oder Symlink zu installieren. Dies ist vor allem für eigene Bibliotheken die als Projektgrundlage dienen nützlich.

Wer den ersten Teil dieser Serie nicht gelesen hat, sollte dies nachholen. Der aktuelle Beitrag baut direkt darauf auf.

Wenn die Entwicklung entsprechend des ersten Teils durchgeführt wurde, sind eigentlich nur die beiden composer.json interessant für die Installation. Die eine beschreibt unsere Erweiterung und ist in unserer Entwicklungsumgebnung unter src/Esit/NAMEderERWEITERUNG/composer.json gespeichert. Ich nenne sie ab jetzt Quell-composer.json. Die andere ist die composer.json der Zielinstallation, in die unsere Erweiterung installiert werden soll. Ich nenne sie ab jetzt Ziel-composer.json.

Quell-composer.json

Die Quell-composer.json muss im Vergleich zum ersten Beitrag etwas angepasst werden. Unter anderem sollte eine Versionsnummer enthalten sein.

Ziel-composer.json

Die Ziel-composer.json ist auch wieder eine globale, von Contao mitgebrachte composer.json. Im Unterschied zu unserer Entwicklungsumgebung, wird hier aber konfiguriert welche Erweiterungen wir benötigen und wie diese bezoegen werden können. Im vorliegenden Fall ist dies relativ einfach, da sie auf unserem lokalen Rechner liegen.

Hier ist der Eintrag "esit/core": "@dev" im Abschnitt require neu (Zeile 21). Außerdem wird im Abschnitt repositories festgelegt, das dort ein Paket zu finden ist (Zeile 23 - 29). Composer lädt von dort die composer.json und schaut welches Paket und welche Version es ist. Wenn der Name mit einem im Abschnitt require übereinstimmt und die Version passt, wird das Paket installiert. Die Abhängigkeiten für unser Paket werden natürichlich in der Quell-composer.json definiert und entspechend berücksichtigt.

Wenn die Erweiterung noch nicht stable ist, muss noch der Eintrag "minimum-stability": "dev" eingefügt werden. Dies sollte aber nur bei einer lokalen Umgebung gemacht werden. Im Produktiveinsatz ist es mit Vorsicht zu genießen.

Nun reicht ein comoser update um unser Paket zu installieren, oder ein Update durchzuführen.

Arten der lokalen Installation

Im vorliegenden Fall werden die Dateien (wenn möglich) per Symlink installiert. Dass heißt, alle Änderungen die wir in der Entwicklungsumgebung machen, sind sofort auch in allen Installationen, in denen wir unser Paket auf diese Art installiert haben wirksam.

Will man dies nicht, kann man einfach in der Ziel-composer.json in Zeile 28, den Eintrag auf "symlink": false ändern. Dann werden die Dateien unseres Pakets kopiert und wir müssen bei jeder Änderung in der Entwicklungsumgebung erst ein comoser update durchführen, damit die Dateien erneut kopiert werden.

Zurück

Kommentare

Aufgrund der unklaren Rechtslage durch die DSGV habe ich mich entschlossen, die Kommentare bis auf Weiteres zu deaktivieren.