First commit

This commit is contained in:
2018-09-06 17:44:31 -03:00
commit c51e6abc63
4 changed files with 1057 additions and 0 deletions
+129
View File
@@ -0,0 +1,129 @@
<?php
namespace RequestResponse;
/*
*
*
*/
class Response{
private static $_instance;
/*
*
*/
public $_headers = Array();
/*
*
*/
public $_body = Array();
/*
*
*/
public $_code = 200;
//SINGLETON==============================================
private function __construct(){
}
private static function newObj(){
if (!isset( self::$_instance )) {
self::$_instance = new Response();
}
return self::$_instance;
}
public function getInstance(){
if (!isset(self::$_instance)) {
return self::newObj();
}
return self::$_instance;
}
//=======================================================
public static function header($key, $value){
$istance = self::getInstance();
$istance->_headers[$key] = $value;
return $istance;
}
public static function body_prepend($body = null){
$instance = self::getInstance();
if (null !== $body) {
$instance->_body = (string) $body . $instance->_body;
return $instance;
}
return $instance;
}
public static function body($body = null){
$instance = self::getInstance();
if (null !== $body) {
$instance->_body = (string) $body;
return $instance;
}
return $instance;
}
public static function body_append($body = null){
$instance = self::getInstance();
if (null !== $body) {
$instance->_body .= (string) $body;
return $instance;
}
return $instance;
}
private function send_headers(){
foreach ($this->_headers as $key => $value) {
header($key .': '. $value, false);
}
return $this;
}
private function send_body(){
echo (string) $this->_body;
return $this;
}
public static function send(){
$instance = self::getInstance();
$instance->send_headers();
$instance->send_body();
return $instance;
}
public static function json($object, $jsonp_prefix = null){
$instance = self::getInstance();
$instance->body('');
$json = json_encode($object);
if (null !== $jsonp_prefix) {
$instance->header('Content-Type', 'text/javascript');
$instance->body("$jsonp_prefix($json);");
} else {
$instance->header('Content-Type', 'application/json');
$instance->body($json);
}
return $instance;
}
public static function redirect($url, $code = 302){
$instance = self::getInstance();
$instance->_code = $code;
$instance->header('Location', $url);
$instance->body('');
$instance->send();
}
function done(){
die;
}
}