/** * * @param integer $gemeenteId * @param integer $sorteerVeld Zie de KVDgis_Crab2Gateway::STRAAT_SORT_ constanten. * @return array Een associatieve array met de volgende sleutels: * <ul> * <li>straatnaam: Naam van de straat</li> * <li>straatnaamId: Het Id van de straatnaam binnen crab.</li> * <li>straatnaamLabel: Een label voor de straat ( straatnaam zonder eventuele suffixen ).</li> * </ul> * @throws InvalidArgumentException Indien er een ongeldig sorteerveld wordt opgegeven. * @throws RuntimeException Indien de straten niet geladen kunnen worden, meestal door een SOAP probleem. */ public function listStraatnamenByGemeenteId($gemeenteId, $sorteerVeld = self::STRAAT_SORT_NAAM) { if ($sorteerVeld < 1 || $sorteerVeld > 6) { throw new InvalidArgumentException("De parameter sorteerVeld van de functie listStraatnamenByGemeenteId moet tussen 1 en 6 liggen!"); } $functionParameters = func_get_args(); $result = $this->_cache->cacheGet($this->getCacheName(__FUNCTION__), $functionParameters); if ($result != false) { return unserialize($result); } $params = new StdClass(); $params->GemeenteId = (int) $gemeenteId; $params->SorteerVeld = (int) $sorteerVeld; $paramsWrapper = new SoapParam($params, "listStraatnamenByGemeenteId"); try { $result = $this->_client->listStraatnamenByGemeenteId($paramsWrapper); $straatItems = $result->ListStraatnamenByGemeenteIdResult->StraatnaamItem; } catch (Exception $e) { throw new RuntimeException('Kon de lijst met straten niet laden wegens: ' . $e->getMessage()); } $straatnamen = array(); foreach ($straatItems as $straatnaam) { $straatnaamArray = array(); $straatnaamArray['straatnaam'] = $straatnaam->Straatnaam; $straatnaamArray['straatnaamId'] = (int) $straatnaam->StraatnaamId; $straatnaamArray['straatnaamLabel'] = $straatnaam->StraatnaamLabel; $straatnamen[] = $straatnaamArray; } $this->_cache->cachePut($this->getCacheName(__FUNCTION__), $functionParameters, serialize($straatnamen)); return $straatnamen; }