/** * Parse request URL into components and return a corresponding MVC request object * * @return midgardmvc_core_request */ public function get_request() { $request = new midgardmvc_core_request(); $request->set_method($this->appserver_context['env']['REQUEST_METHOD']); if (isset($this->appserver_context['env']['HTTP_X_HTTP_METHOD_OVERRIDE'])) { $request->set_method($this->appserver_context['env']['HTTP_X_HTTP_METHOD_OVERRIDE']); } // Parse URL into components (Mjolnir doesn't do this for us) $url_components = parse_url("http://{$this->appserver_context['env']['HTTP_HOST']}{$this->appserver_context['env']['REQUEST_URI']}"); // Handle GET parameters if (!empty($url_components['query'])) { $get_parameters = array(); parse_str($url_components['query'], $get_parameters); $request->set_query($get_parameters); } $request->resolve_node($url_components['path']); return $request; }
public function test_get_request() { $original = new midgardmvc_core_request(); $this->_core->context->create($original); $current = $this->_core->context->get_current_context(); $second = new midgardmvc_core_request(); $second->set_method('post'); $this->_core->context->create($second); $request = $this->_core->context->get_request($current); $this->assertEquals($original, $request); $this->_core->context->delete(); $this->_core->context->delete(); }
/** * Parse request URL into components and return a corresponding MVC request object * * @return midgardmvc_core_request */ public function get_request() { $request = new midgardmvc_core_request(); /*if (function_exists('getallheaders')) *{ * // TODO: Check for GData and CMIS compatible X-Method-Override *} */ $request->set_method($_SERVER['REQUEST_METHOD']); // Parse URL into components $url_components = parse_url("http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"); // Handle GET parameters if (!empty($url_components['query'])) { $get_parameters = array(); parse_str($url_components['query'], $get_parameters); $request->set_query($get_parameters); } $request->resolve_node($url_components['path']); return $request; }
/** * @expectedException InvalidArgumentException */ public function test_method_invalid() { $request = new midgardmvc_core_request(); $request->set_method('FOO'); }