Example #1
0
 /**
  * Create a new request with the given URL, method and data.
  * 
  * @param string  $url
  * @param string  $method  [optional]
  * @param array   $data    [optional]
  * @param Session $session [optional]
  * @return Request
  */
 public static function create($url, $method = 'GET', $data = array(), Session $session = null)
 {
     $components = static::parseUrl($url);
     $data = static::prepareData($data);
     $data['get'] = array_merge($data['get'], static::parseQuery($components['query']));
     if ($components['host']) {
         $data['server']['http_host'] = $components['host'];
         $data['server']['server_name'] = $components['host'];
     }
     if ($components['path']) {
         $data['server']['path_info'] = $components['path'];
         $data['server']['request_uri'] = $components['path'];
     }
     $data['server']['request_method'] = strtoupper($method);
     if ($components['query']) {
         $data['server']['request_uri'] .= '?' . $components['query'];
     }
     $request = new Request($data['get'], $data['post'], $data['cookie'], $data['file'], $data['server'], $data['header']);
     $request->setSession($session);
     return $request;
 }