/** * Index page */ public function indexAction() { // get user info by api key if (null != ($apiKey = $this->getRequest()->getQuery()->api_key)) { if (null != ($userInfo = UserIdentityService::getUserInfo($apiKey, UserModelBase::USER_INFO_BY_API_KEY))) { // fill the user's info if ($userInfo['status'] == UserModelBase::STATUS_APPROVED) { $userIdentity = []; foreach ($userInfo as $fieldName => $value) { $userIdentity[$fieldName] = $value; } // init user identity UserIdentityService::setCurrentUserIdentity($userIdentity); } } } XmlRpcServerFault::attachFaultException('XmlRpc\\Exception\\XmlRpcActionDenied'); $server = new XmlRpcServer(); // get xmlrpc classes if (null != ($classes = $this->getModel()->getClasses())) { $server->sendArgumentsToAllMethods(false); foreach ($classes as $class) { $server->setClass($class['path'], $class['namespace'], $this->getServiceLocator()); } } $server->handle(); // disable layout and view script return $this->response; }
public function testSettingClassWithArgumentsOnlyPassingToConstructor() { $this->_server->setClass('ZendTest\\XmlRpc\\TestClass', 'test', 'a1', 'a2'); $this->_server->sendArgumentsToAllMethods(false); $this->assertFalse($this->_server->sendArgumentsToAllMethods()); $request = new Request(); $request->setMethod('test.test4'); $request->setParams(array('foo')); $response = $this->_server->handle($request); $this->assertNotInstanceOf('Zend\\XmlRpc\\Fault', $response); $this->assertSame(array('test1' => 'a1', 'test2' => 'a2', 'arg' => array('foo')), $response->getReturnValue()); }
/** * {@inheritdoc} */ public function serve() { if (!function_exists('xmlrpc_server_create')) { throw new \Exception('xmlrpc extension is not installed. Please enable this extension.'); exit; } if (!class_exists('Zend\\XmlRpc\\Server')) { throw new \Exception("Zend\\XmlRpc\\Server is required. " . "please install it using 'composer require zendframework/zend-xmlrpc'"); exit; } if (isset($_GET['xmlrpc']) || isset($_GET['XMLRPC'])) { $server = new Server(); $server->sendArgumentsToAllMethods(false); $server->setClass(get_class($this->serviceHandler), 'DBInstance', $this->authentication, $this->connectionStrings, $this->logDir); echo $server->handle(); } }