data = $createFrom->getData(); } } public function hasLayout() { return !isset($this->data['layout']) ? true : $this->data['layout']; } public function disableLayout() { $this->data['layout'] = false; } public function enableLayout() { $this->data['layout'] = true; } public function getData() { return $this->data; } public function setResponseCode($code) { $this->data['code'] = (int)$code; } public function setHeader($key, $val) { $this->data['headers'][$key] = $val; } public function clearHeaders() { $this->data['headers'] = []; } public function setContent($content) { $this->data['body'] = $content; } public function getContent() { return $this->data['body']; } public function flush() { $this->sendResponseCode(); if (isset($this->data['headers'])) { foreach ($this->data['headers'] as $header => $val) { header($header . ': ' . $val, true); } } return $this->flushBody(); } protected function sendResponseCode() { if (!isset($this->data['code'])) { $this->data['code'] = 200; } switch ($this->data['code']) { // 300 class case 301: $text = 'Moved Permanently'; break; case 302: $text = 'Moved Temporarily'; break; // 400 class errors case 400: $text = 'Bad Request'; break; case 401: $text = 'Not Authorized'; break; case 403: $text = 'Forbidden'; break; case 404: $text = 'Not Found'; break; // 500 class errors case 500: $text = 'Internal Server Error'; break; // OK case 200: default: $text = 'OK'; break; } header('HTTP/1.1 ' . $this->data['code'] . ' ' . $text, true, $this->data['code']); } protected function flushBody() { if (isset($this->data['body'])) { return $this->data['body']; } return ''; } public function __toString() { return $this->flush(); } }