Manual:Writing maintenance scripts/pt-br

Este é um tutorial passo a passo sobre como escrever um script de manutenção baseado na classe  (consulte ) que foi introduzido no MediaWiki 1.16 para tornar mais fácil escrever scripts de manutenção MediaWiki de linha de comando.

Exemplo de script
Para descrever a criação de scripts de manutenção, vamos escrever um arquivo, um script que simplesmente imprime “Hello, World”. Este programa contém a quantidade mínima de código necessário para ser executado, bem como o cabeçalho de direitos autorais esperado (para cabeçalhos alternativos, consulte cabeçalhos de direitos autorais):

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

$ php helloWorld.php Hello, World!

Boilerplate explained

 * Incluímos . Isso define o   que tem um método para analisar argumentos, ler o console, obter o banco de dados, etc. É melhor usar o caminho completo para $3.


 * Nós substituímos a classe Maintenance e, em seguida, em


 * dizemos para a classe  executar o script usando a classe Maintenance, somente se for executado a partir da linha de comando.

Internally,  loads another file  which autoloads MediaWiki classes and configuration, and then


 * A função  que nós fornecemos é executada.

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

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 [--help] …



Análise de opções e argumentos
Cumprimentar o mundo está tudo bem, mas nós queremos ser capazes de cumprimentar as pessoas, também.

Para adicionar uma opção de linha de comando, adicione um construtor a  que chame   de   e atualize o método   para usar a nova opção. 's parameters are, so:

Desta vez, quando executado, a saída do script  muda, dependendo do argumento fornecido:

 $ 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
If your maintenance script is for an extension, then you should add a requirement that the extension is installed:

This provides a helfpul error message when the extension is not enabled. 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.

Be aware that no code may be executed other than through the  method. Attempts to call MediaWiki core services, classes, or functions, or calling your own extension code prior to this, will cause errors or is unreliable and unsupported (e.g. ouside the class declaration, or in the constructor).

Writing tests
It's recommended to write tests for your maintenance scripts, like with any other class. See the Maintenance scripts guide for help and examples.