/** * @expectedException \LogicException */ function testGetPathOutsideBaseUrl() { $request = new Request(); $request->setBaseUrl('/foo/'); $request->setUrl('/bar/'); $request->getPath(); }
public function execute($entity, $url = null, $method = Client::GET, $parameters = null) { if (is_object($entity)) { $className = get_class($entity); } else { $className = $entity; } $configuration = $this->getEntityConfiguration($className); $request = new Request(); $request->setUrl($url); $request->setMethod($method); $request->setParameters($parameters); $request->setUsername($configuration->getUsername()); $request->setPassword($configuration->getPassword()); $request->setResponseType($configuration->getResponseType()); $request->setResponseTransformerImpl($configuration->getResponseTransformerImpl()); $result = $this->_client->execute($request); if (is_array($result)) { $name = $configuration->getName(); $identifierKey = $configuration->getIdentifierKey(); $className = $configuration->getClass(); if (isset($result[$name]) && is_array($result[$name])) { $collection = array(); foreach ($result[$name] as $data) { $identifier = $data[$identifierKey]; if (isset($this->_identityMap[$className][$identifier])) { $instance = $this->_identityMap[$className][$identifier]; } else { $instance = $configuration->newInstance(); $this->_identityMap[$className][$identifier] = $instance; } $collection[] = $this->_hydrate($configuration, $instance, $data); } return $collection; } else { if ($result) { if (is_object($entity)) { $instance = $entity; $this->_hydrate($configuration, $instance, $result); $identifier = $this->getEntityIdentifier($instance); $this->_identityMap[$className][$identifier] = $instance; } else { $identifier = $result[$identifierKey]; if (isset($this->_identityMap[$className][$identifier])) { $instance = $this->_identityMap[$className][$identifier]; } else { $instance = $configuration->newInstance(); $this->_identityMap[$className][$identifier] = $instance; } $this->_hydrate($configuration, $instance, $result); } return $instance; } } } else { return array(); } }
/** * Generate a Request object with preset options. * * @return Request a cURL Request object */ public function getRequest() { if (!$this->request instanceof RequestInterface) { //Check if it is the first, call, create the request if needd $this->request = new Request($this->getOptions()); $this->request->setReturnValue(true); if (!empty($this->startArgs)) { //Apply initial configuration $this->request->setUrl($this->startArgs); } } //Return a clone to avoid update locale options return clone $this->request; }
/** * @param Request $request * * @return Request */ public function beforeSend(Request $request) { //Host API isn't restful so path must always self::ENDPOINT_PATH $request->setUrl(self::ENDPOINT_PATH); $headers = array(self::CF_INTEGRATION_HEADER => $this->config->getValue('integrationName'), self::CF_INTEGRTATION_VERSION_HEADER => $this->config->getValue('version')); $request->setHeaders($headers); $body = $request->getBody(); $user_key_actions = array('zone_set', 'full_zone_set'); if (in_array(strtolower($body['act']), $user_key_actions)) { $body['user_key'] = $this->data_store->getHostAPIUserKey(); } $body['host_key'] = $this->integrationAPI->getHostAPIKey(); $request->setBody($body); return $request; }
/** * Initialises the application configuration and runs the router. * * @access public * @param string $projectName The name of the project the user wishes to run. * @param Core\Router $router The routes the users application requires. */ public function __construct($projectName, $router = null) { // Start the profiler Profiler::start(); Profiler::register('Core', 'Front'); // Load the configuration for this project Profiler::register('Core', 'Config'); Config::load($projectName); Profiler::deregister('Core', 'Config'); Profiler::register('Core', 'Request'); Request::setUrl(); Profiler::deregister('Core', 'Request'); // Set the project information $this->_projectName = $projectName; $this->_router = $router ?: new Router(); // And route $this->route(); }
public static function init($url) { $request = new Request(); return $request->setUrl($url); }
/** * Sets following request and sends it * @param Request $request * @param Response $response * @param int $maxRedirects * @return Response * @throws RequestException */ private function doFollow(Request $request, Response $response, $maxRedirects) { /// Change method to GET $request->setMethod(Request::GET); /// Find out location $location = $response->getHeader('Location'); if (strpos($location, '/') == 0 && $request->getUrl() != NULL) { $parsed = @parse_url($request->getUrl()); if ($parsed == FALSE) { throw new \InvalidArgumentException('Invalid URL, got: ' . $request->getUrl()); } $url = isset($parsed['scheme']) ? $parsed['scheme'] . '://' : ''; if (isset($parsed['user']) && isset($parsed['pass'])) { $url .= $parsed['user'] . ':' . $parsed['pass'] . '@'; } $url .= isset($parsed['host']) ? $parsed['host'] : ''; $url .= isset($parsed['port']) ? ':' . $parsed['port'] : ''; $url .= $location; $location = $url; } $request->setUrl($location); $request->addHeaders(array('Referer' => $request->getUrl())); $this->redirectCount++; return $this->send($request, true, $maxRedirects); }