Composer/nl
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
MediaWiki ondersteunt vanaf versie 1.35.2 Composer 2.x! |
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.
Gebruik composer-merge-plugin
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
- Het installeren van extensions met Composer
- Het toevoegen van externe libraries aan MediaWiki core of extensies
- Het aanmaken van composer.json
- Het toevoegen van packages aan packagist.org
- w:Composer (software)