Manual:Writing maintenance scripts/de

Dies ist eine Schritt-für-Schritt-Anleitung zum Schreiben eines Wartungsskripts basierend auf der -Klasse (siehe ), die in MediaWiki 1.16 eingeführt wurde, um das Schreiben von MediaWiki-Wartungsskripten für die Befehlszeile zu vereinfachen.

Beispielskript
Wir gehen ein -Wartungsskript durch, das einfach "Hello, World" ausgibt. Dieses Programm enthält die Mindestmenge an Code, die zum Ausführen benötigt wird, sowie den erwarteten Copyright-Header (für alternative Header siehe Copyright-Header):

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

$ php helloWorld.php Hello, World!

MediaWiki core


Boilerplate explained

 * Wir schließen  ein. Dies definiert , das eine Methode zum Analysieren von Argumenten, zum Lesen der Konsole, zum Abrufen der Datenbank usw. hat. Es ist am besten, den vollständigen Pfad zu $3 zu verwenden.


 * Wir erweitern die Maintenance-Klasse und dann mit


 * Sag der Klasse Maintenance, dass sie das Skript mit unserer Klasse  nur dann ausführen soll, wenn es von der Kommandozeile aus ausgeführt wird.

Intern lädt  eine weitere Datei, die MediaWiki-Klassen und -Konfigurationen automatisch lädt, und dann


 * Die -Funktion, die wir definiert haben, wird ausgeführt, und unser Skript erledigt seine Arbeit.

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.

Help command
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") …



Eine Beschreibung hinzufügen
"Aber, für was ist dieses Wartungsskript?" Ich kann dich fragen hören.

Wir können eine Beschreibung oben in die Ausgabe von " " einfügen, indem wir die Methode  in unserem Konstruktor verwenden:

Die Ausgabe gibt uns nun die Beschreibung:

$ php helloWorld.php --help

Say hello.

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



Parsing von Optionen und Argumenten
Die Welt zu grüßen ist schön und gut, aber wir wollen auch Einzelpersonen begrüßen können.

Um eine Kommandozeilenoption hinzuzufügen, fügst du einen Konstruktor zu  hinzu, der  's   aufruft und aktualisierst die Methode , um die neue Option zu verwenden. Die Parameter von  sind , also:

Diesmal ändert sich die Ausgabe des -Skripts bei der Ausführung je nach dem bereitgestellten Argument:

 $ 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

Erweiterungen
Wenn dein Wartungsskript für eine Erweiterung gedacht ist, solltest du eine Anforderung hinzufügen, dass die Erweiterung installiert ist:

Meistens liefert dies eine nette Fehlermeldung, wenn die Erweiterung auf diesem Wiki nicht aktiviert ist (wahrscheinlich auf Wiki-Farmen). 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.

Beachte, dass die von deiner Erweiterung definierten Klassen erst verfügbar sind, wenn du die Funktion  drückst. Versuche, vorher Instanzen zu erstellen, z. im Konstruktor, verursacht Klasse nicht gefunden Ausnahmen.



Schreibtests
Es wird empfohlen, wie bei jeder anderen Klasse, Tests für deine Wartungsskripte zu schreiben. Hilfe und Beispiele findest du im Handbuch Wartungsskripte.