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.

Writing tests
It's recommended to write tests for your maintenance scripts, like with any other class. See the Manual:PHP unit testing/Writing unit tests guide for help and examples.