Manual:Writing maintenance scripts/fr

Ceci est un tutoriel pas à pas sur la manière d'écrire un script de maintenance basé sur la classe  (voir ) introduite dans la version 1.16 de MediaWiki pour rendre plus simple l'écriture des lignes de commande des scripts de maintenance MediaWiki.

Squelette de code
Nous avons décrit un script de maintenance  qui ne fait qu'afficher «   ». Ce programme contient le minimum de code nécessaire à son lancement ainsi que les en-têtes requises pour les droits d'auteur (pour l'utilisation d'autres en-têtes, voir En-têtes de droit d'auteur):

The below example program will print "Hello, World!":

$ php helloWorld.php Hello, World! 

Noyau MediaWiki


Boilerplate explained

 * Nous incluons . Cela définit la   qui contient les méthodes pour analyser syntaxiquement les arguments, lire la console, interroger la base de données, etc. Il est conseillé d'utiliser le chemin complet vers $3.


 * Nous étendons la classe Maintenance, puis avec


 * nous demandons à la classe  d'exécuter le script en utilisant notre classe Maintenance, seulement si l'exécution a lieu à partir de la ligne de commande.

En interne,  charge un autre fichier  qui charge automatiquement les classes et les paramètres de MediaWiki, puis


 * La fonction  que nous avons fournie est exécutée et notre script réalise son travail.

When our program is run from the command-line, the core maintenance framework will take care of initialising MediaWiki core and configuration etc, and then it will invoke this method.



Commande Help
One of the built-in features that all maintenance scripts enjoy is a  option. The above example boilerplate would produce the following help page:

$ php helloWorld.php --help

Usage: php helloWorld.php […]

Generic maintenance parameters: --help (-h): Display this help message --quiet (-q): Whether to suppress non-error output --conf: Location of LocalSettings.php, if not default --wiki: For specifying the wiki ID   --server: The protocol and server name to use in URL --profiler: Profiler output format (usually "text") …



Ajouter une description
« Mais quel est le but de ce script de maintenance ? » Je vous entends déjà le demander.

Il est possible de mettre une description au début de la sortie du «  » en utilisant la méthode   dans notre constructeur :

Maintenant la sortie nous donne la description :

$ php helloWorld.php --help

Say hello.

Usage: php helloWorld.php [--help] …



Analyse des options et des arguments
Saluer le monde est très sympathique et très bien, mais nous voulons être capable de saluer également des individus.

Pour ajouter une option, ajoutez un constructeur à la  qui appelle   de   et qui met à jour la méthode   pour utiliser la nouvelle option. Les paramètres de  sont , donc :

Cette fois, à l'exécution, la sortie du script  change en fonction des arguments fournis :

 $ php helloWorld.php Hello, World! $ php helloWorld.php --name=Mark Hello, Mark! $ php helloWorld.php --help

Say hello.

Usage: php helloWorld.php […] … Script specific parameters: --name: Who to say Hello to

Extensions
Si votre script de maintenance concerne une extension, alors vous devez ajouter la condition, que celle-ci soit installée :

En général cela fournit un joli message d'erreur lorsque l'extension n'est pas active sur le wiki (tout comme pour les fermes de wikis). For example, during local development a particular extension might not yet be enabled in LocalSettings.php, or when operating a wiki farm an extension might be enabled on a subset of wikis.

Notez-bien que les classes définies par votre extension ne seront pas disponibles tant que vous n'aurez pas atteint la fonction. Toute tentative pour créer des instances AVANT ceci, par exemple dans le constructeur, génèrera des exceptions du type classe non trouvée.



Ecrire des tests
Il est recommandé d'écrire des tests pour vos scripts de maintenance, comme pour toute autre classe. Voir le guide des scripts de maintenance pour l'aide et les exemples.