|
Der Composer erleichtert die Installation von Extensions
In der etwas entfernteren Zukunft sollen TYPO3 Versionen nur noch mit Hilfe des Composers installiert werden können. Daher macht es Sinn, sich frühzeitig damit zu beschäftigen und seine „alte“ Symlink basierte Installation auf Composer umzustellen. Wie du dabei vorgehst, erfährst du im Folgenden - auch anhand einer Beispiel-Installation. Aktuell ist die Installation von Extensions noch nicht ohne zusätzlichen Aufwand über das Backend möglich. Wer wissen möchte wie das geht, kann gerne in meinem FAQ Artikel vorbeischauen. Mit einer der nächsten Major Versionen wird es sicher auch die Möglichkeit geben, wie zuvor Extensions über das Backend zu installieren.

Schritt 1: Composer installieren

Aber kommen wir nun zur Ausgangslage unserer TYPO3 Installation. Ich habe eine Installation in der Version 10.4 vorbereitet. Sie beinhaltet ein paar Extensions inklusive eines Sitepackage als Extension, dass das Template der Webseite beinhaltet. Als erstes stellen wir sicher, dass in unserem Hostingpaket auf der Konsole der Composer zur Verfügung steht. Das kann man am einfachsten mit composer -v prüfen. Erfolgt eine Ausgabe, wissen wir, dass der Composer installiert ist. Sollte das nicht der Fall sein, kann man ihn etwa bei Mittwald mit wenigen Klicks über das Kundencenter installieren.

Umstellung auf Composer

Aktuell befindet sich die Struktur unserer TYPO3 Installation in einem Unterordner unterhalb des Document Roots und sieht so aus:
 

fileadmin/
.htaccess
index.php -> typo3_src/index.php
typo3 -> typo3_src/typo3/
typo3cms -> typo3conf/ext/typo3_console/typo3cms*
typo3conf/
typo3_src -> typo3_src-10.4.30/
typo3_src-10.4.30/
typo3temp/

 

Nun starten wir mit der Migration auf Composer. Als erstes können wir die Symlinks index.php und typo3 löschen. Dafür führen wir rm -rf index.php && rm -rf typo3 aus.

composer.json erstellen

Das 
Macht deine Arbeit leichter Hosting

mittwald
Hosting neu gedacht

Die ersten Vorbereitungen sind hiermit abgeschlossen und wir können uns eine composer.json Datei mit allen Paketen erstellen oder erstellen lassen. Ich verwende dafür gerne das Base Distribution Package von TYPO3. Der Vorteil: Das Paket besitzt bereits eine Abhängigkeit für die TYPO3 Console, die du später nutzen kannst.

Mit composer require typo3/cms-base-distribution ^10.4 können wir uns das Paket für die Version 10.4 laden. Ich gehe bewusst nur auf Version 10.4 ein, da man so später sehr leicht auf die einzelnen Minor Versionen updaten kann.

Ist die Installation abgeschlossen, hat Composer für uns die neue Struktur erstellt. Alle Dateien, die der TYPO3 Core benötigt, sind geladen und installiert.

Extensions nachinstallieren

Nun müssen wir die Extensions nachinstallieren, die sich aktuell im Verzeichnis typo3conf/ext befinden. In meinem Fall sind das die folgenden:
 

  • bootstrap_package
  • cookieman
  • news
  • sitepackage
  • typo3_console

Das sitepackage ist meine eigene Extension für Anpassungen am bootstrap_package. Die typo3_console haben wir bereits installiert.

 

Um zu schauen, ob die genutzten Extensions über eine Composer Version verfügen, kann man das TER (TYPO3 Extension Repository) zur Hilfe nehmen. Wo du den Extension Composer Key findest, kannst du in unserem FAQ-Artikel nachlesen.

Wie im FAQ-Artikel habe ich auch in meiner Installation zusätzlich News installiert und nutze dafür nun den Befehl composer req georgringer/news

So gehst du nun mit allen weiteren Extensions vor, die du im System installiert hast. 

Sonderfall: Pakete, die nicht über packagist verfügbar sind

Pakete, die nicht über packagist (der Plattform hinter Composer) verfügbar sind, muss man etwas anders installieren. In meinem Fall möchte ich nicht, dass mein Sitepackage auf packagist verfügbar ist, und gehe wie folgt vor:

 

Wir erstellen das Verzeichnis packages. Der Name kann von jedem frei gewählt werden. Er sollte nur auf der gleichen Ebene wie public oder vendor sein. Wenn wir den Ordner mit mkdir packages erstellt haben, müssen wir den folgenden Code in unser composer.json an irgendeiner Stelle einfügen:

"repositories": {
        	[
                    	"type": "path",
                    	"url": "packages/*"
        	]
}

Des Weiteren benötigt die Extension noch eine funktionale composer.json Datei, um im nächsten Schritt installiert zu werden.

Die composer.json meines Sitepackage sieht wie folgt aus.

{
	"name": "max-mustermann/sitepackage",
	"type": "typo3-cms-extension",
	"description": "",
	"homepage": "https://www.mustermann.de",
	"license": ["GPL-2.0-or-later"],
	"keywords": ["TYPO3 CMS"],
	"require": {
    	"bk2k/bootstrap-package": "^12.0"
	},
	"autoload": {
    	"psr-4": {
            "MaxMustermann\\Sitepackage\\": "Classes/"
    	}
	},
	"extra": {
    	"typo3/cms": {
        	"extension-key": "sitepackage"
    	}
	}
}

Um die Datei nun installieren zu können, benötigen wir wieder den require Befehl. Für meine Sitepackage wäre das composer req max-mustermann/sitepackage:@dev. Die Angabe des Pakets musst du für deine Extension oder Sitepackage anpassen. Dabei verwendest du den Namen, der in der composer.json steht.

Struktur angleichen

Nachdem wir nun alle Extensions und deren Abhängigkeiten installiert haben, müssen wir noch einige Dateien und Ordner verschieben (und/oder löschen), um sie an die Composer Struktur anzugleichen.

Als erstes löschen wir den ext Ordner unterhalb von typo3conf aus der alten TYPO3 Installation. Da wir schon beim Löschen sind, können wir nun auch den Symlink typo3_src sowie den TYPO3 Core Ordner entfernen. Letzterer ist in meinem Fall typo3_src-10.4.30.

Wie schon erwähnt: Es müssen noch einige Dateien und Ordner verschoben werden. Das machen wir nun im nächsten Schritt:

mv typo3conf/sites config/sites
mv typo3temp/var var
mv typo3conf/l10n var/labels
mv typo3conf/LocalConfiguration.php public/typo3conf/LocalConfiguration.php
Mv typo3conf/AdditionalConfiguration.php public/typo3conf/AdditionalConfiguration.php
Mv typo3conf/PackageStates.php public/typo3conf/PackageStates.php

Als vorletzten Schritt können noch die Verzeichnisse typo3conf und typo3temp gelöscht werden.

Zum Schluss: Testen

Um nun unsere auf Composer migrierte TYPO3 Installation zu testen, müssen wir das Ziel der Domain auf das neue public Verzeichnis einstellen. Anschließend kannst du die Webseite aufrufen. Mit etwas Glück funktioniert unsere Installation nun einwandfrei. Manchmal kann es sein, dass der Cache gelöscht werden muss oder auch noch Anpassungen an den Extensions vorzunehmen sind. Letzteres ist sehr individuell und von jeder Installation abhängig.

Meine Erfahrung: Eine 100%tige automatische Umstellung auf Composer ist derzeit leider fast nie möglich. Es setzt zumindest immer das Wissen der zu migrierenden TYPO3 Installation voraus. Einige Sachen kann man aber automatisieren, um einen möglichst reibungslosen Umstieg zu ermöglichen.

TYPO3 Know How
Buche jetzt dein TYPO3-Hosting und profitiere Philipps Fachwissen und auch dem, aller CMS-Profis im Kundenservice. Unser Support steht dir dabei 24/7 an 365 Tagen im Jahr zur Verfügung.

Ähnliche Artikel:

Webentwicklung

TOP 20 der TYPO3 10 Extensions

Mit TYPO3 10.4.x sind schon viele Extensions kompatibel. Welche die beliebtesten Erweiterungen unserer Hosting-Kunden sind, erfährst du hier.

Hosting

„Der Managed Server war für uns ein dead end“ – Nora und Markus Winter im Gespräch

Agenturen haben besondere Hosting-Anforderungen. Wie die Agentur Faktenhaus bei ihrer Arbeit von den Mittwald Lösungen profitiert, erzählen die Inhaber.

Das brauchst du um erfolgreich zu sein
Hosting

Die top 5 Anforderungen von Agenturen & Freelancern an ihr Hosting

Um erfolgreiche Projekte an den Start zu bringen, haben Agenturen & Freelancer Hosting-Must-Haves. Welche das sind, liest du hier.

Kommentare

André am

Sehr hilfreicher Beitrag! Vielen Dank dafür.

Antworten

Kommentar hinzufügen