protected function createServer()
{
$properties = $this->_servers[$this->_serverID];
$serverClass = null;
if ($this->getApplication()->getConfigurationType() == TApplication::CONFIG_TYPE_PHP && isset($config['class'])) {
$serverClass = $config['class'];
} else {
if ($this->getApplication()->getConfigurationType() == TApplication::CONFIG_TYPE_XML) {
$serverClass = $properties->remove('class');
}
}
if ($serverClass === null) {
$serverClass = self::DEFAULT_SOAP_SERVER;
}
Prado::using($serverClass);
$className = ($pos = strrpos($serverClass, '.')) !== false ? substr($serverClass, $pos + 1) : $serverClass;
if ($className !== self::DEFAULT_SOAP_SERVER && !is_subclass_of($className, self::DEFAULT_SOAP_SERVER)) {
throw new TConfigurationException('soapservice_server_invalid', $serverClass);
}
$server = new $className();
$server->setID($this->_serverID);
foreach ($properties as $name => $value) {
$server->setSubproperty($name, $value);
}
return $server;
}