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

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

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.
$IP désigne le chemin du répertoire d'installation (ou répertoire) de votre installation MédiaWiki, le même répertoire qui contient LocalSettings.php , index.php etc..


Utilisation du plugin composer-merge

$IP désigne le chemin du répertoire d'installation (ou répertoire) de votre installation MédiaWiki, le même répertoire qui contient LocalSettings.php , index.php etc..

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

Références