Composer
Composer est un gestionnaire de dépendances pour les bibliothèques PHP. À partir de MediaWiki 1.25 , les dépendances des bibliothèques externes du noyau de MediaWiki sont gérées par Composer. En plus, il peut être utilisé pour gérer l'installation des extensions MediaWiki (disponible depuis MediaWiki 1.22 ). Néanmoins actuellement ceci n'est pas bien supporté. Cela peut changer à l'avenir.
Installer Composer
MediaWiki prend en charge Composer 2.x depuis MediaWiki 1.35.2+ . |
Sous Unix/Linux et macOS
Il existe plusieurs manières d'installer Composer, à côté de la plus évidente, sudo apt install composer
.
Seul Composer 1.x est supporté par MediaWiki 1.31, 1.35.0 et 1.35.1. Pour récupérer la dernière version stable de Composer 1.x :
wget -cO - https://getcomposer.org/composer-1.phar > composer.phar
Composer 2.x et Composer 1.x sont pris en charge par MediaWiki >= 1.35.2 (conformément à la branche REL1_36 et au Master). Pour récupérer la dernière version stable de Composer 2.x :
wget -cO - https://getcomposer.org/composer-2.phar > composer.phar
Pour les utilisateurs sous macOS, vous pouvez utiliser Homebrew pour installer Composer.
Notez que cela va installer Composer version 2.x, donc en fonction de la version de MediaWiki que vous avez, il vous faudra à la place, suivre les instructions de wget
ci-dessus pour télécharger Composer 1.x. Pour installer avec brew
:
brew install composer
Si cela ne fonctionne pas, ou que vous n'avez pas installé Homebrew, vous pouvez essayer :
php -r "readfile('https://getcomposer.org/installer');" | php
Toolforge et le distributeur d'extensions utilisent la copie de Composer contenue dans le répertoire Git « integration/composer » .
Une fois Composer installé, vous pouvez exécuter les commandes via le fichier phar téléchargé :
php composer.phar someCommand
Vous pouvez déplacer le fichier phar dans votre chemin de sorte qu'il soit utilisé comme un exécutable classique :
mv composer.phar /usr/local/bin/composer
composer someCommand
Si la commande mv échoue à cause des droits d'accès, exécutez-la de nouveau avec sudo.
sudo mv composer.phar /usr/local/bin/composer
composer someCommand
Sous Windows
Téléchargez simplement et exécutez l'installeur à partir de la page de téléchargement. Si vous préférez une installation manuelle, vous pouvez suivre les étapes précédentes sauf que Windows ne dispose pas de wget (ni d'APT i de Homebrew) par défaut, et qu'il n'existe pas de répertoire /usr/local/bin . Pour ces cas, téléchargez simplement composer-1.phar dans votre navigateur web puis renommez-le en composer.phar.
Installation locale
Tout n'est pas perdu si vous n'avez aucune autorisation pour exécuter Composer sur le serveur. Il est également possible de télécharger le dossier MediaWiki sur votre machine locale, d'installer et d'exécuter Composer, et de transférer les fichiers à nouveau vers le serveur.
Mettre à jour Composer
Composer 1.x
Pour mettre à jour Composer avec la dernière version stable 1.x (ou pour revenir en arrière à partir d'une 2.x stable), vous pouvez utiliser :
composer self-update --1
Si la commande de mise à jour échoue à cause des droits d'accès, réexécutez-la avec sudo.
sudo composer self-update --1
Si votre version de Composer est très ancienne, le paramètre --1
peut être absent. Dans ce cas, exécutez deux fois self-update
. La première passe permet de faire la mise à jour vers la version 2.x, et la seconde revient sur la dernière version 1.x.
composer self-update
composer self-update --1
Composer 2.x
Si vous avez Composer 1.x, et souhaitez passer à Composer 2.x (en ayant une version appropriée de MediaWiki, c'est à dire >= 1.35.2), vous pouvez utiliser :
composer self-update --2
Si la commande de mise à jour échoue à cause des droits d'accès, réexécutez-la avec sudo.
sudo composer self-update --2
Utilisation dans le noyau MediaWiki
MediaWiki 1.25+ dépend de quelques bibliothèques externes gérées par Composer.
Composer crée un chargeur automatique sur vendor/autoload.php
, qui est inclus par WebStart.php
.
Les dépendances gérées par Composer sont regroupées dans les distributions tarball de MediaWiki et des extensions afin que les administrateurs système n'aient pas besoin d'utiliser directement Composer.
Lorsque vous installez MediaWiki avec Git, les dépendances déclarées dans $IP/composer.json
peuvent :
- soit être installées localement en exécutant
composer update --no-dev
, - soit le dépôt
mediawiki/vendor.git
peut être cloné pour fournir les mêmes bibliothèques que celles utilisées sur la grappe de production Wikimédia.
Utilisation du plugin composer-merge
Le noyau de MediaWiki « est propriétaire de » $IP/composer.json
et modifiera le contenu de ce fichier dans les mises à jour par tarball ou gérées par Git.
Afin de permettre aux installations locales d'utiliser Composer pour charger des bibliothèques facultatives et/ou gérer les extensions avec Composer, un plugin spécial pour Composer appelé composer-merge-plugin a été développé.[1]
Ce plugin et la configuration composer.json
du noyau de MediaWiki permettent à ce qu'un déploiement local puisse ajouter les extensions et les bibliothèques requises à un fichier composer.local.json
dans le répertoire racine de MediaWiki.
composer.local.json
peut également être utilisé pour installer les bibliothèques gérées par Composer et qui sont nécessaires aux extensions qui n'ont pas été installées avec Composer.
Cela n'est nécessaire que lorsque les extensions ne sont pas installées à partir des archives générées par Extension Distributor.
Pour permettre à Composer de découvrir et de traiter les fichiers composer.json
pouvant être inclus dans n’importe laquelle de vos extensions installées localement, ajoutez quelque chose comme ceci à $IP/composer.local.json
:
{
"extra": {
"merge-plugin": {
"include": [
"extensions/*/composer.json",
"skins/*/composer.json"
]
}
}
}
Après toute modification de composer.local.json
, vous devez exécuter composer update
de sorte que Composer puisse recalculer les dépendances et que les modifications puissent être réalisées.
Ressources
- Comment installler les extensions via Composer
- Comment ajouter des bibliothèques externes au noyau Mediawiki ou aux extensions
- Meilleures façons de créer un fichier composer.json
- Information sur la manière d'ajouter des paquets à packagist.org
- w:Composer (software)