Example #1
0
 /**
  * Erstellt einen Request aus den Umgebungsvariablen
  *
  * wird eine Umgebungsvariable mit NULL übergeben (oder ausgelassen), wird die global Umgebungsvariable genommen
  * infer() ist also äquivalent mit:
  * infer($_GET, $_POST, $_COOKIE, $_SERVER)
  *
  * ist $_GET['mod_rewrite_request'] gesetzt wird dies als resource genommen
  */
 public static function infer($GET = NULL, $POST = NULL, $COOKIE = NULL, $SERVER = NULL)
 {
     $merged = array();
     $merged['GET'] = $GET !== NULL ? $GET : $_GET;
     $merged['POST'] = $POST !== NULL ? $POST : $_POST;
     $merged['COOKIE'] = $COOKIE !== NULL ? $COOKIE : $_COOKIE;
     $merged['SERVER'] = $SERVER !== NULL ? $SERVER : $_SERVER;
     $input = new \Psc\Form\DataInput($merged);
     $method = NULL;
     switch ($input->get(array('SERVER', 'REQUEST_METHOD'))) {
         case 'POST':
             $method = Request::POST;
             break;
         case 'PUT':
             $method = Request::PUT;
             break;
         case 'DELETE':
             $method = Request::DELETE;
             break;
         case 'GET':
         default:
             $method = Request::GET;
             break;
     }
     /* wir haben mit mod-rewrite $_GET['mod_rewrite_request'] gesetzt oder es übergeben */
     if (($rewriteResource = $input->get('GET.mod_rewrite_request', NULL)) != '') {
         $request = new Request($method, $rewriteResource);
     } elseif (isset($_SERVER['REQUEST_URI'])) {
         $request = new Request($method, $_SERVER['REQUEST_URI']);
     } else {
         throw new Exception('Konnte keine vernünftige Resource inferren. (kann nur GET[mod_rewrite_request]');
     }
     if ($request->getMethod() === REQUEST::POST) {
         $request->setBody($input->get(array('POST'), array()));
     }
     if ($request->getMethod() === REQUEST::PUT) {
         throw new Exception('Keine Ahnung, wie ich hier an den Body komme');
     }
     return $request;
 }
Example #2
0
 /**
  * @expectedException \InvalidArgumentException
  */
 public function testPart0Exception()
 {
     $request = new Request(Request::GET, '/episodes/8/status');
     $request->getPart(0);
 }