The Wayback Machine - https://web.archive.org/web/20180611032039/https://github.com/addwiki/mediawiki-api
Skip to content
Library for interacting with the mediawiki Api http://addwiki.readthedocs.io/
PHP Shell
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

mediawiki-api

Build Status Code Coverage Scrutinizer Quality Score

On Packagist: Latest Stable Version Download count

Issue tracker: https://phabricator.wikimedia.org/project/profile/1490/

Installation

Use composer to install the library and all its dependencies:

composer require "addwiki/mediawiki-api:~0.7.0"

Example Usage

// Load all the stuff
require_once( __DIR__ . '/vendor/autoload.php' );

// Log in to a wiki
$api = new \Mediawiki\Api\MediawikiApi( 'http://localhost/w/api.php' );
$api->login( new \Mediawiki\Api\ApiUser( 'username', 'password' ) );
$services = new \Mediawiki\Api\MediawikiFactory( $api );

// Get a page
$page = $services->newPageGetter()->getFromTitle( 'Foo' );

// Edit a page
$content = new \Mediawiki\DataModel\Content( 'New Text' );
$revision = new \Mediawiki\DataModel\Revision( $content, $page->getPageIdentifier() );
$services->newRevisionSaver()->save( $revision );

// Move a page
$services->newPageMover()->move(
	$services->newPageGetter()->getFromTitle( 'FooBar' ),
	new Title( 'FooBar' )
);

// Delete a page
$services->newPageDeleter()->delete(
	$services->newPageGetter()->getFromTitle( 'DeleteMe!' ),
	array( 'reason' => 'Reason for Deletion' )
);

// Create a new page
$newContent = new \Mediawiki\DataModel\Content( 'Hello World' );
$title = new \Mediawiki\DataModel\Title( 'New Page' );
$identifier = new \Mediawiki\DataModel\PageIdentifier( $title );
$revision = new \Mediawiki\DataModel\Revision( $newContent, $identifier );
$services->newRevisionSaver()->save( $revision );

// List all pages in a category
$pages = $services->newPageListGetter()->getPageListFromCategoryName( 'Category:Cat name' );

Running the integration tests

To run the integration tests, you need to have a running MediaWiki instance. The tests will create pages and categories without using a user account so it's best if you use a test instance. Furthermore you need to turn off rate limiting by adding the line

$wgGroupPermissions['*']['noratelimit'] = true;

to the LocalSettings.php of your MediaWiki.

By default, the tests will use the URL http://localhost/w/api.php as the API endpoint. If you have a different URL (e.g. http://localhost:8080/w/api.php), you need to configure the URL as an environemnt variable before running the tests. Example:

export MEDIAWIKI_API_URL='http://localhost:8080/w/api.php'

Warning: Running the integration tests can take a long time to complete.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.