/** * Create a server from an array of LayerDefinitions * * @param LayerDefinition[] $definitions * @return LayarPOIServer */ public function createLayarPOIServerFromLayerDefinitions(array $definitions) { $result = new LayarPOIServer(); foreach ($definitions as $definition) { $layer = new Layer($definition->name, $this->developerId, $this->developerKey); if ($definition->getSourceType() == LayerDefinition::DSN) { $poiConnector = new $definition->connector($definition->source["dsn"], $definition->source["username"], $definition->source["password"]); } else { if ($definition->getSourceType() == LayerDefinition::FILE) { $poiConnector = new $definition->connector($definition->source); } } foreach ($definition->connectorOptions as $optionName => $option) { $poiConnector->setOption($optionName, $option); } // for WebApi: pass full definition object if (method_exists($poiConnector, 'initDefinition')) { $poiConnector->initDefinition($definition); } $layer->setPOIConnector($poiConnector); $result->addLayer($layer); } return $result; }