Letzte Änderung:
Der composer ist ein sog. dependency manager Tool für PHP-Anwendungen. Konkret
Zentrale Datei ist die composer.json. Sie listet alle Abhängigkeiten einer Software auf.
Die Installation einer TYPO3 Minimalversion 11 erzeugt z.B. folgende composer.json:
{
"require": {
"typo3/cms-backend": "^11.5",
"typo3/cms-core": "^11.5",
"typo3/cms-extbase": "^11.5",
"typo3/cms-extensionmanager": "^11.5",
"typo3/cms-filelist": "^11.5",
"typo3/cms-fluid": "^11.5",
"typo3/cms-frontend": "^11.5",
"typo3/cms-install": "^11.5",
"typo3/cms-recordlist": "^11.5"
}
}
Der Befehl zur erstmaligen Installation lautet:
composer require "typo3/cms-backend:^11.5" "typo3/cms-core:^11.5" "typo3/cms-extbase:^11.5" "typo3/cms-extensionmanager:^11.5" "typo3/cms-filelist:^11.5" "typo3/cms-fluid:^11.5" "typo3/cms-frontend:^11.5" "typo3/cms-install:^11.5" "typo3/cms-recordlist:^11.5"
Woher bekommt der composer die zu installierende Software?
Standardmäßig holt sich der composer die erforderlichen Dateien von packagist.org. Alternativ besteht die Möglichkeit, in der composer.json eine andere Quelle("Repository") anzugeben.
Beispiel für ein lokales Respository.:
"repositories": {
"myextension": {
"type": "path",
"url": "./myprojects/myextension"
}
}
Mit der Installation wird auch eine Datei composer.lock erzeugt und bei jedem Update aktualisiert. Sie enthält für alle Pakete die genauen Versionsnummern, die gerade eingesetzt werden. Damit können andere Entwickler sehen, auf welcher genauen technischen Basis die Software bereitgestellt wird (z.B. im git).
Für TYPO3 Extensions muss eine composer.json mit mindestens den folgenden Angaben vorliegen:
{
"name": "myorganisation/mytemplate",
"description": "Template",
"type": "typo3-cms-extension",
"license": "GPL-2.0-or-later",
"version": "1.0.0",
"authors": [{
"name": "My Name",
"email": "me@myhome.com"
}],
"require": {
"typo3/cms-fluid-styled-content": "^11.5"
},
"extra": {
"typo3/cms": {
"extension-key": "extensionkey"
}
}
Genaure Informationen zu den einzelnen Feldern finden Sie auf der offiziellen TYPO3-Seite zur composer.json.
Installation einer Extension:
composer require vendor/name
Entfernen einer Extension:
composer remove vendor/name
Update einer Extension inkl. deren Abhängigkeiten:
composer update vendor/name -W
Update TYPO3 Core:
composer update typo3/cms-* -W
Abfrage, welche Komponenten veraltet sind:
composer outdated -D