This page is a translated version of the page Composer and the translation is 100% complete.

Composer ist ein Abhängigkeitsverwalter für PHP-Bibliotheken. Beginnend mit MediaWiki 1.25 werden die externen Bibliotheksabhängigkeiten des MediaWiki-Kerns mit Composer verwaltet. Darüber hinaus kann es verwendet werden, um die Installation von MediaWiki-Erweiterungen zu verwalten (verfügbar seit MediaWiki 1.22 ). Derzeit wird diese Möglichkeit jedoch nicht ausreichend unterstützt. Dies kann sich in der Zukunft ändern.

Composer installieren

Auf Unix/Linux und macOS

Es gibt mehrere Möglichkeiten, install Composer zu installieren, abgesehen von der naheliegendsten Möglichkeit, sudo apt install composer.

Nur Composer 1.x wird von MediaWiki 1.31, 1.35.0 und 1.35.1 unterstützt. Um die neueste stabile Version von Composer 1.x zu erhalten:

wget -cO - https://getcomposer.org/composer-1.phar > composer.phar

Composer 2.x und Composer 1.x werden von MediaWiki >= 1.35.2 unterstützt (zusammen mit dem REL1_36-Zweig und Master). Um die neueste stabile Version von Composer 2.x zu erhalten:

wget -cO - https://getcomposer.org/composer-2.phar > composer.phar

Für Benutzer von macOS können Sie Homebrew verwenden, um Composer zu installieren. Beachten Sie, dass dadurch die Version Composer 2.x installiert wird. Je nachdem, welche Version von MediaWiki Sie verwenden, müssen Sie möglicherweise stattdessen die obigen Anweisungen für wget befolgen, um Composer 1.x herunterzuladen:

brew install composer

Wenn das nicht funktioniert, oder Sie Homebrew nicht installiert haben, können Sie es versuchen:

php -r "readfile('https://getcomposer.org/installer');" | php

Toolforge und der Erweiterungsverteiler verwenden die Kopie von Composer, die im Git-Repository "integration/composer" enthalten ist.

Sobald Composer installiert ist, können Sie die Befehle über das heruntergeladene phar:

php composer.phar someCommand

Sie sollten phar in Ihren Pfad verschieben, damit es als normale ausführbare Datei verwendet werden kann:

mv composer.phar /usr/local/bin/composer
composer someCommand

Wenn der Befehl mv aufgrund von Berechtigungen fehlschlägt, führen Sie ihn erneut mit sudo aus.

sudo mv composer.phar /usr/local/bin/composer
composer someCommand

Auf Windows

Laden Sie einfach das Installationsprogramm von der Download-Seite herunter und führen Sie es aus. Wenn Sie die manuelle Installation bevorzugen, können Sie die obigen Schritte befolgen, mit dem Unterschied, dass Windows standardmäßig kein wget (oder APT oder Homebrew) hat und es kein /usr/local/bin-Verzeichnis gibt. In diesen Fällen können Sie einfach composer-1.phar in Ihrem Webbrowser herunterladen und es dann in composer.phar umbenennen.

Lokale Installation

Falls du keine Rechte für die Ausführung von Composer auf dem Server hast, ist das kein Grund zur Sorge. Alternativ kann man den MediaWiki-Ordner auf den lokalen Rechner herunterladen, den Composer installieren und ausführen und die Dateien zurück auf den Server übertragen.

Composer aktualisieren

Composer 1.x

Wenn Sie Composer auf die neueste Version 1.x Stable aktualisieren (oder ein Downgrade von 2.x Stable durchführen) möchten, können Sie dies tun:

composer self-update --1

Wenn der Aktualisierungsbefehl aufgrund von Berechtigungen fehlschlägt, führen Sie ihn erneut mit sudo aus.

sudo composer self-update --1

Wenn Sie eine sehr alte Version des Composers benutzen, kann es sein, dass er den Parameter --1 nicht hat. In diesem Fall sollten Sie self-update zweimal ausführen. Die erste Ausführung aktualisiert ihn möglicherweise auf 2.x, die zweite führt zu einem Downgrade auf die neueste Version 1.x.

composer self-update
composer self-update --1

Composer 2.x

Wenn Sie Composer 1.x verwenden und auf Composer 2.x aktualisieren möchten (und eine geeignete Version von MediaWiki verwenden, z. B. >= 1.35.2), können Sie dies tun:

composer self-update --2

Wenn der Aktualisierungsbefehl aufgrund von Berechtigungen fehlschlägt, führen Sie ihn erneut mit sudo aus.

sudo composer self-update --2

Verwendung im MediaWiki-Kern

MediaWiki 1.25+ hängt von einigen externen Bibliotheken ab, die mit Composer verwaltet werden. Composer erstellt einen Autoloader für vendor/autoload.php, der in WebStart.php enthalten ist.

Die vom Composer verwalteten Abhängigkeiten sind in den Tarball-Distributionen von MediaWiki und den Erweiterungen enthalten, so dass Systemadministratoren den Composer nicht direkt verwenden müssen. Beim Installation von MediaWiki mit Git können die in $IP/composer.json deklarierten Abhängigkeiten entweder lokal installiert werden, indem composer update --no-dev ausgeführt wird, oder das mediawiki/vendor.git-Repository kann geklont werden, um die gleichen Bibliotheken bereitzustellen, die auf dem Wikimedia-Produktionscluster verwendet werden.[1]

$IP steht für den Installationspfad (oder "Verzeichnis") deiner MediaWiki-Installation, dem selben Verzeichnis das die LocalSettings.php , index.php etc. beinhaltet.

Verwendung des composer-merge-plugins

$IP steht für den Installationspfad (oder "Verzeichnis") deiner MediaWiki-Installation, dem selben Verzeichnis das die LocalSettings.php , index.php etc. beinhaltet.

MediaWiki core "besitzt" $IP/composer.json und wird den Inhalt dieser Datei sowohl in Tarball- als auch in Git-verwalteten Updates ändern. Um es lokalen Installationen zu ermöglichen, Composer zum Laden optionaler Bibliotheken und/oder Erweiterungen mit Composer verwalten zu verwenden, wurde ein spezielles Plugin für Composer namens composer-merge-plugin entwickelt.[2] Dieses Plugin und die MediaWiki-Kernkonfiguration composer.json ermöglichen es einer lokalen Bereitstellung, benötigte Erweiterungen und Bibliotheken zu einer Datei composer.local.json innerhalb des MediaWiki-Stammverzeichnisses hinzuzufügen.

composer.local.json kann auch verwendet werden, um von Composer verwaltete Bibliotheken zu installieren, die von Erweiterungen benötigt werden, die nicht mit Composer selbst installiert werden. Dies wird nur benötigt, wenn die Erweiterungen nicht aus Tarballs installiert werden, die von Extension Distributor erzeugt wurden.

Um Composer in die Lage zu versetzen, die composer.json-Dateien zu erkennen und zu verarbeiten, die in allen lokal installierten Erweiterungen enthalten sein können, fügen Sie etwas wie das Folgende zu $IP/composer.local.json hinzu:

{
    "extra": {
        "merge-plugin": {
            "include": [
                "extensions/*/composer.json",
                "skins/*/composer.json"
            ]
        }
    }
}

Nach jeder Änderung an composer.local.json muss composer update ausgeführt werden, damit Composer die Abhängigkeiten neu berechnen kann und die Änderungen wirksam werden.

Ressourcen

Einzelnachweise