/** * Salvages the state of any salvageable service instances in $other. * * @note $other will have been destroyed when salvage() returns. * * @param MediaWikiServices $other */ private function salvage(self $other) { foreach ($this->getServiceNames() as $name) { // The service could be new in the new instance and not registered in the // other instance (e.g. an extension that was loaded after the instantiation of // the other instance. Skip this service in this case. See T143974 try { $oldService = $other->peekService($name); } catch (NoSuchServiceException $e) { continue; } if ($oldService instanceof SalvageableService) { /** @var SalvageableService $newService */ $newService = $this->getService($name); $newService->salvage($oldService); } } $other->destroy(); }
/** * Salvages the state of any salvageable service instances in $other. * * @note $other will have been destroyed when salvage() returns. * * @param MediaWikiServices $other */ private function salvage(self $other) { foreach ($this->getServiceNames() as $name) { $oldService = $other->peekService($name); if ($oldService instanceof SalvageableService) { /** @var SalvageableService $newService */ $newService = $this->getService($name); $newService->salvage($oldService); } } $other->destroy(); }