示例#1
0
 /**
  * @expectedException \LogicException
  */
 function testGetPathOutsideBaseUrl()
 {
     $request = new Request();
     $request->setBaseUrl('/foo/');
     $request->setUrl('/bar/');
     $request->getPath();
 }
示例#2
0
 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;
 }
示例#5
0
 /**
  * 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);
 }
示例#7
0
 /**
  * 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);
 }