Manual:Writing maintenance scripts/uk

Починаючи з версії 1.16, у MediaWiki з'явився клас для зручної роботи з допоміжними скриптами з командного рядка.

Example script
Створимо власний допоміжний скрипт helloWorld.php, який буде просто друкувати фразу “Привіт усім!”. У цьому скрипті буде мінімум коду, а також заголовок-коментар із застереженням про авторське право (див. усі заголовки-ліцензії):

Цей скрипт просто надрукує “Привіт усім!”, але він також уже має вбудовану довідку. Просто запустіть його з параметром --help:

 $ php helloWorld.php Hello, World! $ php helloWorld.php --help

Usage: php helloWorld.php [--conf|--dbpass|--dbuser|--globals|--help|--quiet|--wiki] conf : Location of LocalSettings.php, if not default dbpass : The password to use for this script dbuser : The DB user to use for this script globals : Output globals at the end of processing for debugging help : Display this help message quiet : Whether to supress non-error output wiki : For specifying the wiki ID

Огляд коду скрипта:

Оскільки це допоміжний скрипт, то ми підключаємо файл Maintenance.php. Він подбає за автозавантаження класів і т.д. Найкраще слід використовувати повний шлях до файлу Maintenance.php.


 * Ми перевизначити клас Maintenance, а потім, в

Вказуємо, що при запуску файлу має викликатися клас HelloWorld і лише тоді, якщо скрипт запущено з командного рядка (а не з браузера). Internally,  loads another file  which autoloads MediaWiki classes and configuration, and then


 * The  function that we've defined is executed, and our script does its work.

Adding a description
"But what is this maintenance script for?" I can hear you asking.

We can put a description at the top of the " " output by using the  method in our constructor:

The output now gives us the description:

$ php helloWorld.php --help

Say hello.

Usage: php helloWorld.php [--conf|--dbpass|--dbuser|--globals|--help|--quiet|--wiki] …

Передавання параметрів
Привітання усім одразу - це добре, але ми також хочемо надсилати привіт і окремим користувачам.

Щоб передавати параметри скриптові, слід додати конструктор і в ньому викликати метод addOption. Крім того, треба внести зміни до функції execute. addOption's parameters are $name, $description, $required = false, $withArg = false, $shortName = false:

На цей раз, коли виконується, вихід із сценаріїв змін helloWorld.php</tt> залежно від аргументу, якщо:

<pre style="overflow:auto"> $ php helloWorld.php Hello, World! $ php helloWorld.php --name=Mark Hello, Mark! $ php helloWorld.php --help

Say hello.

Usage: php helloWorld.php [--conf|--dbpass|--dbuser|--globals|--help|--name|--quiet|--wiki] …   name : Who to say Hello to

Extensions
If your maintenance script is for an extension, then you should add a requirement that the extension is installed:

Mostly this provides a nice error message when the extension is not enabled on that wiki (likely on wiki farms). This will only work for extensions that use.