Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F34548662
Wikibase Entity Source Lagacy Configuration Migration Script v0.2
No One
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Authored By
•
toan
Jul 12 2021, 2:50 PM
2021-07-12 14:50:59 (UTC+0)
Size
3 KB
Referenced Files
None
Subscribers
None
Wikibase Entity Source Lagacy Configuration Migration Script v0.2
View Options
<?php
namespace Wikibase\Lib\Maintenance;
use Composer\Semver\Constraint\Constraint;
use Composer\Semver\VersionParser;
use Maintenance;
use Wikibase\Client\EntitySourceDefinitionsLegacyClientSettingsParser;
use Wikibase\DataAccess\EntitySource;
use Wikibase\DataAccess\EntitySourceDefinitionsConfigParser;
use Wikibase\Lib\EntityTypeDefinitions;
use Wikibase\Lib\WikibaseSettings;
use Wikibase\Repo\WikibaseRepo;
$basePath = getenv( 'MW_INSTALL_PATH' );
require_once $basePath . '/maintenance/Maintenance.php';
/**
* Tool for getting new entitySources configuration for upcoming REL1_37 release
*
* Place this script in the extensions/Wikibase folder and executing by running
* php extensions/Wikibase/entitySources.php
* @license GPL-2.0-or-later
*/
class EntitySourcesMigration extends Maintenance {
/**
* @param EntitySource[] $entitySources
*/
function createSettingsFromEntitySources(array $entitySources): array
{
$entitySourceConfig = [];
foreach ($entitySources as $source) {
$entitySourceConfig[$source->getSourceName()] = [
'entityNamespaces' => $source->getEntityNamespaceIds(),
'repoDatabase' => $source->getDatabaseName(),
'baseUri' => $source->getConceptBaseUri(),
'rdfNodeNamespacePrefix' => $source->getRdfNodeNamespacePrefix(),
'rdfPredicateNamespacePrefix' => $source->getRdfPredicateNamespacePrefix(),
'interwikiPrefix' => $source->getInterwikiPrefix(),
];
}
return $entitySourceConfig;
}
public function execute() {
$versionParser = new VersionParser();
if ( !$versionParser->parseConstraints( new Constraint( '==', $versionParser->normalize( MW_VERSION ) ) )
->matches( new Constraint("<", "1.37") ) ) {
die('This script is intended to run on versions older than 1.37.');
}
print_r('// Suggested entitySource configuration to be added in LocalSettings.php:' . "\n\n");
if (WikibaseSettings::isRepoEnabled()) {
$repoEntitySourceConfig = $this->createSettingsFromEntitySources(
WikibaseRepo::getDefaultInstance()->getEntitySourceDefinitions()->getSources()
);
print_r('$wgWBRepoSettings[\'entitySources\'] = ');
var_export($repoEntitySourceConfig);
print_r(";\n\n");
}
if (WikibaseSettings::isClientEnabled()) {
$settings = WikibaseSettings::getClientSettings();
// REL1_35 and REL1_36 compatible
$entityTypes = require __DIR__ . '/lib/WikibaseLib.entitytypes.php';
$entityTypeDefinitions = new EntityTypeDefinitions( $entityTypes );
if ( $settings->hasSetting( 'entitySources' ) && !empty( $settings->getSetting( 'entitySources' ) ) ) {
$configParser = new EntitySourceDefinitionsConfigParser();
$sources = $configParser->newDefinitionsFromConfigArray( $settings->getSetting( 'entitySources' ), $entityTypeDefinitions )->getSources();
} else {
$parser = new EntitySourceDefinitionsLegacyClientSettingsParser();
$sources = $parser->newDefinitionsFromSettings( $settings, $entityTypeDefinitions )->getSources();
}
$clientEntitySourceConfig = $this->createSettingsFromEntitySources( $sources );
print_r('$wgWBClientSettings[\'entitySources\'] = ');
var_export($clientEntitySourceConfig);
print_r(";\n\n");
}
}
}
$maintClass = EntitySourcesMigration::class;
require_once RUN_MAINTENANCE_IF_MAIN;
File Metadata
Details
Attached
Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
9125517
Default Alt Text
Wikibase Entity Source Lagacy Configuration Migration Script v0.2 (3 KB)
Attached To
Mode
P16814 Wikibase Entity Source Legacy Configuration Migration Script v0.4
Attached
Detach File
Event Timeline
Log In to Comment