getConstructor(); if ($constructor === null) { $this->_classInstance = $class->newInstance(); } else { $this->_classInstance = $class->newInstanceArgs(array_values($classArgs)); } $this->_className = $className; } /** * Proxy for the WS-I compliant call * * @param string $name * @param string $arguments * @return array */ public function __call($name, $arguments) { $result = call_user_func_array(array($this->_classInstance, $name), $this->_preProcessArguments($arguments)); return array("{$name}Result"=>$result); } /** * Pre process arguments * * @param mixed $arguments * @return array */ protected function _preProcessArguments($arguments) { if (count($arguments) == 1 && is_object($arguments[0])) { return get_object_vars($arguments[0]); } else { return $arguments; } } }