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のフルパスを使うと最善です.


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


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

内部的には、 が別ファイルの をロードしMediaWiki クラスと設定を自動的に搭載すると次に


 * 定義した実行 関数は実行され、スクリプトが働きます.

説明の追加
"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] …

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

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:

このとき、実行によるhelloWorld.php スクリプトの出力は与えられた議論によって変化:

 $ 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

拡張機能
管理スクリプトが拡張機能のためなら実行をインストールする必要条件を加える：

そのwiki (と同様にwikiファームも)拡張子を有効にしないと、これによりちょっとしたエラーメッセージが供給されます. を使う拡張子だけで有効になります.

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.