addwiki/mediawiki-api
MediaWiki API 库
3.0.0
2021-10-23 08:50 UTC
Requires
- php: >=7.4
- addwiki/mediawiki-api-base: ^3.0
- addwiki/mediawiki-datamodel: ^3.0
Requires (Dev)
- mediawiki/mediawiki-codesniffer: ~35.0
- monolog/monolog: ^1.23
- php-parallel-lint/php-parallel-lint: ^1.2
- phpunit/phpunit: ~9
This package is auto-updated.
Last update: 2024-09-12 17:42:10 UTC
README
安装
使用 composer 安装库及其所有依赖项
composer require "addwiki/mediawiki-api:~3.0"
示例用法
// Load all the stuff require_once( __DIR__ . '/vendor/autoload.php' ); // Create an authenticated API and services $auth = new \Addwiki\Mediawiki\Api\Client\Auth\UserAndPassword( 'username', 'password' ) $api = new \Addwiki\Mediawiki\Api\Client\Action\ActionApi( 'http://localhost/w/api.php', $auth ); $services = new \Addwiki\Mediawiki\Api\MediawikiFactory( $api ); // Get a page $page = $services->newPageGetter()->getFromTitle( 'Foo' ); // Edit a page $content = new \Addwiki\Mediawiki\DataModel\Content( 'New Text' ); $revision = new \Addwiki\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 \Addwiki\Mediawiki\DataModel\Content( 'Hello World' ); $title = new \Addwiki\Mediawiki\DataModel\Title( 'New Page' ); $identifier = new \Addwiki\Mediawiki\DataModel\PageIdentifier( $title ); $revision = new \Addwiki\Mediawiki\DataModel\Revision( $newContent, $identifier ); $services->newRevisionSaver()->save( $revision ); // List all pages in a category $pages = $services->newPageListGetter()->getPageListFromCategoryName( 'Category:Cat name' );
运行集成测试
要运行集成测试,您需要有一个运行的 MediaWiki 实例。测试将创建页面和类别,而不使用用户账户,因此最好使用测试实例。此外,您需要通过添加以下行来关闭速率限制:
$wgGroupPermissions['*']['noratelimit'] = true;
到您的 MediaWiki 的 LocalSettings.php
文件。
默认情况下,测试将使用 URL http://localhost/w/api.php
作为 API 端点。如果您有其他 URL(例如 http://localhost:8080/w/api.php
),您需要在运行测试之前将 URL 配置为环境变量。示例
export MEDIAWIKI_API_URL='http://localhost:8080/w/api.php'
警告:运行集成测试可能需要很长时间才能完成。