/** * @since 2.2 * * @param Store $store * @param Callable|null $reporterCallback * * @return DataRebuilder */ public function newDataRebuilder(Store $store, $reporterCallback = null) { $messageReporter = MessageReporterFactory::getInstance()->newObservableMessageReporter(); $messageReporter->registerReporterCallback($reporterCallback); $dataRebuilder = new DataRebuilder($store, ApplicationFactory::getInstance()->newTitleCreator()); $dataRebuilder->setMessageReporter($messageReporter); return $dataRebuilder; }
/** * @see Maintenance::execute */ public function execute() { $start = microtime(true); $memoryBefore = memory_get_peak_usage(false); if (!defined('SMW_VERSION')) { $this->reportMessage("You need to have SMW enabled in order to run the maintenance script!\n\n"); return false; } $reporter = new ObservableMessageReporter(); $reporter->registerReporterCallback(array($this, 'reportMessage')); $store = StoreFactory::getStore($this->hasOption('b') ? $this->getOption('b') : null); $store->setUpdateJobsEnabledState(false); $dataRebuilder = new DataRebuilder($store); $dataRebuilder->setMessageReporter($reporter); $dataRebuilder->setParameters($this->mOptions); if ($dataRebuilder->rebuild()) { $this->doReportRuntimeEnvironment($memoryBefore, memory_get_peak_usage(false), microtime(true) - $start); return true; } $this->reportMessage($this->mDescription . "\n\n" . 'Use option --help for usage details.' . "\n"); return false; }