示例#1
0
 /**
  * Run request to get homepage
  * 
  * @param \Duality\Structure\Http\Request  $req    The HTTP request
  * @param \Duality\Structure\Http\Response $res    The HTTP response
  * @param array                            $params The uri params
  */
 public function doIndex(Request &$req, Response &$res, $params = array())
 {
     // Set heading
     $this->view->addHeading('Welcome to Duality!');
     // Set response
     $res->setContent($this->view->save());
 }
示例#2
0
    /**
     * Default application action
     * 
     * @param \Duality\Structure\Http\Request  $req    Give the current request
     * @param \Duality\Structure\Http\Response $res    Give the current response
     * @param array                            $params Give the URI params
     * 
     * @return void
     */
    public function doIndex(Request &$req, Response &$res, $params = array())
    {
        $html = <<<EOF
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <title>Duality default controller - Replace me!</title>
    </head>
    <body><h1>Duality default controller - Replace me!</h1></body>
</html>
EOF;
        $res->setContent($html);
        $res->setStatus(404);
    }
示例#3
0
 /**
  * Parse the response string
  * 
  * @param string $result The response string
  * 
  * @return \Duality\Structure\Http\Response The response instance
  */
 protected function parseResult($result)
 {
     list($header, $body) = @explode("\r\n\r\n", $result, 2);
     $response = new Response();
     $response->setContent($body);
     foreach (explode("\r\n", $header) as $i => $line) {
         if ($i === 0) {
             $parts = explode(' ', $line);
             $response->setStatus($parts[1]);
             unset($parts);
         } else {
             list($key, $value) = explode(': ', $line);
             $response->addHeader($key, $value);
         }
     }
     return $response;
 }
示例#4
0
 /**
  * Sets an HTTP cookie
  * 
  * @param \Duality\Structure\Http\Response $response The response to be sent
  * 
  * @throws \Duality\Core\DualityException When finds an invalid cookie
  * 
  * @return \Duality\Service\Server This instance
  */
 public function sendCookies(Response $response)
 {
     $required = array('name', 'value', 'expire', 'path', 'domain', 'secure');
     foreach ($response->getCookies() as $item) {
         // Validate cookie
         $hasKeys = array_intersect_key(array_flip($required), $item);
         if (count($hasKeys) !== count($required)) {
             throw new DualityException("Error HTTP Cookie: required keys: " . "name, value, expire, path, domain and secure", DualityException::E_HTTP_INVALIDCOOKIE);
         }
         // send cookie
         setcookie($item['name'], $item['value'], $item['expire'], $item['path'], $item['domain'], $item['secure']);
     }
     return $this;
 }