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

Composer is een hulpmiddel voor het beheren van afhankelijkheden van broncode van PHP-libraries. Vanaf versie MediaWiki 1.25 worden de externe afhankelijkheden van MediaWiki met Composer beheerd. Het kan ook worden gebruikt om de installatie van MediaWiki extensies te beheren (beschikbaar vanaf versie MediaWiki 1.22 ). Dit wordt nog niet goed ondersteund. Dat kan in de toekomst dus nog beter worden.

Composer installeren

Op Unix/Linux en macOS

Het installeren van Composer kan op meerdere manieren, voor de hand ligt deze manier: sudo apt install composer.

In MediaWiki 1.31, 1.35.0 en 1.35.1 wordt alleen Composer 1.x ondersteund. Ophalen meest recente stabiele Composer 1.x release:

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

Composer 2.x en Composer 1.x worden ondersteund in MediaWiki >= 1.35.2 (samen met de REL1_36 branch en master). Ophalen meest recente stabiele Composer 2.x release:

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

Gebruikers van macOS kunnen Homebrew gebruiken om Composer te installeren. Dit zal Composer 2.x installeren, dus u moet kijken of u die versie kunt gebruiken aan de hand van uw versie van MediaWiki, mogelijk moet u versie 1.x installeren en dus de wget instructie volgen. Voor het het installeren met gebruik van brew:

brew install composer

Als dat niet werkt of als u geen Homebrew beschikbaar heeft, probeer dan:

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

Toolforge en de 'extensie distributeur' gebruiken de kopie van Composer uit de "integration/composer" git repo.

Na de installatie van Composer kunt u de commando's uitvoeren via de gedownloade phar:

php composer.phar someCommand

U kunt het in uw PATH zetten zodat u het als een normale executable kunt gebruiken en op elke plek uitvoeren:

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

Als het commando mv mislukt vanwege rechten, voer het dan uit met sudo.

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

Op Windows

U kunt de installer downloaden van de downloadpagina en daarna uitvoeren. Als u een handmatige installatie wilt doen, volg dan de bovenstaande stappen. Windows kent echter standaard geen wget (of APT, Homebrew), er is ook geen map /usr/local/bin. In deze gevallen kunt u ook composer-1.phar downloaden in uw webbrowser en het bestand dan hernoemen als composer.phar.

Lokale installatie

U heeft geen pech als u geen machtigingen heeft om Composer op de server uit te voeren. Het is ook mogelijk om de MediaWiki-map naar uw lokale computer te downloaden, Composer te installeren en uit te voeren en de bestanden terug te zetten naar de server.

Composer upgraden

Composer 1.x

Als u Composer wilt upgraden naar de laatste stabiele 1.x versie (of downgraden van versie 2.x), dan kan dat met:

composer self-update --1

Als het update commando mislukt vanwege rechten, voer het dan uit met sudo.

sudo composer self-update --1

Als u een oude oude versie van composer gebruikt, dan heeft het mogelijk geen --1 parameter. Voer dan self-update twee keer uit. De eerste keer kan het upgraden naar 2.x, de 2e keer zal het downgraden na de actuele versie van 1.x.

composer self-update
composer self-update --1

Composer 2.x

Als u Composer 1.x gebruikt en het wilt upgraden naar Composer 2.x (omdat u een MediaWiki versie >= 1.35.2 gebruikt), dan kan dat met:

composer self-update --2

Als het update commando mislukt vanwege rechten, voer het dan uit met sudo.

sudo composer self-update --2

Gebruik in MediaWiki core

MediaWiki 1.25+ is afhankelijk van bepaalde externe libraries die met Composer worden beheerd. Composer maakt een autoloader aan op vendor/autoload.php, deze is toegevoegd bij WebStart.php.

De door Composer beheerde afhankelijkheden worden gebundeld in tarball distributies van MediaWiki en extensies zodat systeembeheerders niet direct Composer hoeven te gebruiken. Wanneer de installatie van MediaWiki via Git wordt gedaan, worden de afhankelijkheden gedeclareerd in $IP/composer.json of lokaal geïnstalleerd door het uitvoeren van composer update --no-dev of de mediawiki/vendor.git repository kan worden gekloond om dezelfde libraries te geven die gebruikt worden op het Wikimedia productie cluster.

$IP staat voor het Installatie Pad (of "map") van de MediaWiki installatie, dezelfde map die LocalSettings.php , index.php etc. bevat.


Gebruik composer-merge-plugin

$IP staat voor het Installatie Pad (of "map") van de MediaWiki installatie, dezelfde map die LocalSettings.php , index.php etc. bevat.

MediaWiki core is "eigenaar" van $IP/composer.json en zal de inhoud van dat bestand wijzigen in zowel de tarball als de door Git beheerde updates. Om het aan een lokale installatie toe te staan dat Composer wordt gebruikt op libraries te laden en/of extensie te beheren, is er een speciale plugin voor Composer composer-merge-plugin gemaakt.[1] Deze plugin en de MediaWiki core composer.json configuratie staan een lokale implementatie toe om verplicht extensies en libraries toe te voegen aan een bestand composer.local.json in de map die de root van MediaWiki is.

composer.local.json kan ook gebruikt worden om door Composer beheerde libraries te installeren die benodigd zijn voor extensies die niet met gebruik van Composer zijn geïnstalleerd. Dat is alleen nodig als die extensies niet zijn geïnstalleerd met tarballs aangemaakt door de Extension Distributor.

Om Composer in staat te stellen welke bestanden nodig zijn en die te verwerken worden er bij extensies vaak composer.json bestanden toegevoegd. Voeg iets als dit to aan $IP/composer.local.json:

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

Als composer.local.json is gewijzigd, voer dan composer update uit, Composer zal dan de afhankelijkheden opnieuw bepalen en verwerken.

Bronnen

Referenties