Manual:Writing maintenance scripts/ja

これは、メディアウィキ 1.16で導入されて書きやすくなったコマンドラインのMediaWiki管理スクリプトを クラス (参照)にもとづいて書く方法を順番に解説したものです.

スクリプトの例
まずhelloWorld.php管理スクリプトによって簡単に"Hello, World"と出力します. このプログラムを走らせて予定される著作権ヘッダを得るのに最低必要なコードをふくみます (その他のヘッダは著作権ヘッダで説明します):

このプログラムは"Hello, World!"と出力するだけでもすでに--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のフルパスを使うと最善です.


 * 管理クラスを延長するため


 * コマンドラインから実行した場合に限定して管理クラスに私たちの クラスを使ってスクリプトを走らせるように指示します.

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


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

オプションと引数の解析
世の中に対して広く呼びかけることはすばらしいし、一人ひとりをお迎えできるようになることも目指します.

To add a command-line option, add a constructor to  that calls  's   and update the   method to use the new option. 's parameters are, so:

This time, when executed, the output of the helloWorld.php script changes depending on the argument provided:

 $ php helloWorld.php Hello, World! $ php helloWorld.php --name=Mark Hello, Mark! $ php helloWorld.php --help Usage: php helloWorld.php [--conf|--dbpass|--dbuser|--globals|--help|--name|--quiet|--wiki] …   name : Who to say Hello to

拡張機能
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.