protected static function invoke($action, $resourceName, array $params = array()) { if (!in_array($action, self::$actions)) { throw new Exception\InvalidArgumentException(sprintf("Action %s is not exists", $action)); } if (!in_array($resourceName, self::$resources)) { throw new Exception\InvalidArgumentException(sprintf("Resource %s is not exists", $resourceName)); } $options = array('resource' => $resourceName, 'api_key' => Everypay::getApiKey(), 'api_uri' => Everypay::getApiUrl()); $options = array_merge($params, $options); $actionClass = 'Everypay\\Action\\' . ucwords($action); $actionInstance = new $actionClass($options); $request = $actionInstance->__invoke(); return self::handleResponse(self::createClient()->send($request)); }