original_string: private function parseVxpdoSettings(\DOMNode $vxpdo) {
  
  		if(is_null($this->vxpdo)) {
  			$this->vxpdo = [];
  		}
  
  		foreach($vxpdo->getElementsByTagName('datasource') as $datasource) {
  
  			$name = $datasource->getAttribute('name') ?: 'default';
  
  			if(array_key_exists($name,  $this->vxpdo)) {
  				throw new ConfigException(sprintf("Datasource '%s' declared twice.", $name));
  			}
  
  			$config = [
  				'driver' => null,
  				'dsn' => null,
  				'host' => null,
  				'port' => null,
  				'user' => null,
  				'password' => null,
  				'dbname' => null,
  			];
  
  			foreach($datasource->childNodes as $node) {
  
  				if($node->nodeType !== XML_ELEMENT_NODE) {
  					continue;
  				}
  
  				if(array_key_exists($node->nodeName, $config)) {
  					$config[$node->nodeName] = trim($node->nodeValue);
  				}
  			}
  
  			$this->vxpdo[$name] = (object) $config;
  
  		}
  
  	}
code: private function parseVxpdoSettings(\DOMNode $vxpdo) {
  
  		if(is_null($this->vxpdo)) {
  			$this->vxpdo = [];
  		}
  
  		foreach($vxpdo->getElementsByTagName('datasource') as $datasource) {
  
  			$name = $datasource->getAttribute('name') ?: 'default';
  
  			if(array_key_exists($name,  $this->vxpdo)) {
  				throw new ConfigException(sprintf("Datasource '%s' declared twice.", $name));
  			}
  
  			$config = [
  				'driver' => null,
  				'dsn' => null,
  				'host' => null,
  				'port' => null,
  				'user' => null,
  				'password' => null,
  				'dbname' => null,
  			];
  
  			foreach($datasource->childNodes as $node) {
  
  				if($node->nodeType !== XML_ELEMENT_NODE) {
  					continue;
  				}
  
  				if(array_key_exists($node->nodeName, $config)) {
  					$config[$node->nodeName] = trim($node->nodeValue);
  				}
  			}
  
  			$this->vxpdo[$name] = (object) $config;
  
  		}
  
  	}
code_tokens: private function parseVxpdoSettings ( \ DOMNode $ vxpdo ) { if ( is_null ( $ this -> vxpdo ) ) { $ this -> vxpdo = [ ] ; } foreach ( $ vxpdo -> getElementsByTagName ( 'datasource' ) as $ datasource ) { $ name = $ datasource -> getAttribute ( 'name' ) ? : 'default' ; if ( array_key_exists ( $ name , $ this -> vxpdo ) ) { throw new ConfigException ( sprintf ( "Datasource '%s' declared twice." , $ name ) ) ; } $ config = [ 'driver' => null , 'dsn' => null , 'host' => null , 'port' => null , 'user' => null , 'password' => null , 'dbname' => null , ] ; foreach ( $ datasource -> childNodes as $ node ) { if ( $ node -> nodeType !== XML_ELEMENT_NODE ) { continue ; } if ( array_key_exists ( $ node -> nodeName , $ config ) ) { $ config [ $ node -> nodeName ] = trim ( $ node -> nodeValue ) ; } } $ this -> vxpdo [ $ name ] = ( object ) $ config ; } }
docstring: parse datasource settings
  
  @param \DOMNode $datasources
  @throws ConfigException
docstring_tokens: parse datasource settings