private function verifyRepository() { /** * verify required device ids */ foreach ($this->userAgentHandlerChain->getHandlers() as $handler) { /** * @var \Wurfl\Handlers\AbstractHandler */ foreach ($handler::$constantIDs as $requireDeviceId) { $device = $this->persistenceProvider->load($requireDeviceId); if ($device === null) { throw new ConsistencyException('wurfl.xml load error - device id [' . $requireDeviceId . '] is missing - ' . 'you may need to update the wurfl.xml file to a more recent version'); } } } /** * verify required capabilities */ $requiredCaps = VirtualCapabilityProvider::getRequiredCapabilities(); /** @var \Wurfl\Device\ModelDeviceInterface $genericDevice */ $genericDevice = $this->persistenceProvider->load('generic'); $loadedCaps = array_keys($genericDevice->getCapabilities()); $missingCaps = array_diff($requiredCaps, $loadedCaps); if (count($missingCaps) > 0) { throw new ConsistencyException('Missing required WURFL Capabilities: ' . implode(', ', $missingCaps)); } $invalidFallbacks = array_diff(array_keys($this->fallbacks), $this->devices); if (count($invalidFallbacks) > 0) { foreach ($invalidFallbacks as $invalidFallback) { $device = new CustomDevice(array($this->persistenceProvider->load($this->fallbacks[$invalidFallback]))); throw new ConsistencyException(sprintf('Invalid Fallback %s for the device %s', $invalidFallback, $device->id)); } } $this->fallbacks = array(); $this->devices = array(); }