diff options
Diffstat (limited to 'bin/wiki/vendor/addwiki/mediawiki-api/README.md')
-rw-r--r-- | bin/wiki/vendor/addwiki/mediawiki-api/README.md | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/bin/wiki/vendor/addwiki/mediawiki-api/README.md b/bin/wiki/vendor/addwiki/mediawiki-api/README.md new file mode 100644 index 00000000..325958fc --- /dev/null +++ b/bin/wiki/vendor/addwiki/mediawiki-api/README.md @@ -0,0 +1,74 @@ +mediawiki-api +================== +[![Build Status](https://travis-ci.org/addwiki/mediawiki-api.png?branch=master)](https://travis-ci.org/addwiki/mediawiki-api) +[![Code Coverage](https://scrutinizer-ci.com/g/addwiki/mediawiki-api/badges/coverage.png?s=5bce1c1f0939d278ac715c7846b679a61401b1de)](https://scrutinizer-ci.com/g/addwiki/mediawiki-api/) +[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/addwiki/mediawiki-api/badges/quality-score.png?s=4182ebaf18fb0b22af9bc3e7941fd4e3524c932e)](https://scrutinizer-ci.com/g/addwiki/mediawiki-api/) +[![Dependency Status](https://www.versioneye.com/user/projects/54b92f798d55087422000030/badge.svg?style=flat)](https://www.versioneye.com/user/projects/54b92f798d55087422000030) + +On Packagist: +[![Latest Stable Version](https://poser.pugx.org/addwiki/mediawiki-api/version.png)](https://packagist.org/packages/addwiki/mediawiki-api) +[![Download count](https://poser.pugx.org/addwiki/mediawiki-api/d/total.png)](https://packagist.org/packages/addwiki/mediawiki-api) + +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 + +```php +// 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. |