first
This commit is contained in:
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\Framework\Request\Parser;
|
||||
|
||||
|
||||
abstract class AbstractRequestParser {
|
||||
|
||||
public abstract function parseData($data);
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace Nextend\Framework\Request\Parser;
|
||||
|
||||
class JoomlaRequestParser extends AbstractRequestParser {
|
||||
|
||||
public function parseData($data) {
|
||||
return $data;
|
||||
}
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Nextend\Framework\Request\Parser;
|
||||
|
||||
class WordPressRequestParser extends AbstractRequestParser {
|
||||
|
||||
private $isSlashed;
|
||||
|
||||
public function __construct() {
|
||||
$this->isSlashed = did_action('init') > 0;
|
||||
}
|
||||
|
||||
public function parseData($data) {
|
||||
if ($this->isSlashed) {
|
||||
if (is_array($data)) {
|
||||
return $this->stripslashesRecursive($data);
|
||||
}
|
||||
|
||||
return stripslashes($data);
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
private function stripslashesRecursive($array) {
|
||||
foreach ($array as $key => $value) {
|
||||
$array[$key] = is_array($value) ? $this->stripslashesRecursive($value) : stripslashes($value);
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
}
|
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\Framework\Request;
|
||||
|
||||
use Nextend\Framework\PageFlow;
|
||||
|
||||
class Request {
|
||||
|
||||
/**
|
||||
* @var Storage
|
||||
*/
|
||||
public static $REQUEST;
|
||||
|
||||
/**
|
||||
* @var Storage
|
||||
*/
|
||||
public static $GET;
|
||||
|
||||
/**
|
||||
* @var Storage
|
||||
*/
|
||||
public static $POST;
|
||||
|
||||
/**
|
||||
* @var Storage
|
||||
*/
|
||||
public static $SERVER;
|
||||
|
||||
/**
|
||||
* @var Storage
|
||||
*/
|
||||
public static $COOKIE;
|
||||
|
||||
/**
|
||||
* @var Storage
|
||||
*/
|
||||
public static $FILES;
|
||||
|
||||
private static $requestUri;
|
||||
|
||||
public static $isAjax = false;
|
||||
|
||||
public function __construct() {
|
||||
self::$REQUEST = new Storage($_REQUEST);
|
||||
self::$GET = new Storage($_GET);
|
||||
self::$POST = new Storage($_POST);
|
||||
self::$SERVER = new Storage($_SERVER);
|
||||
self::$COOKIE = new Storage($_COOKIE);
|
||||
self::$FILES = new Storage($_FILES, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array|string $url
|
||||
* @param integer $statusCode
|
||||
* @param bool $terminate
|
||||
*/
|
||||
public static function redirect($url, $statusCode = 302, $terminate = true) {
|
||||
|
||||
header('Location: ' . $url, true, $statusCode);
|
||||
if ($terminate) {
|
||||
PageFlow::exitApplication();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
new Request();
|
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace Nextend\Framework\Request;
|
||||
|
||||
use Nextend\Framework\Request\Parser\AbstractRequestParser;
|
||||
use Nextend\Framework\Request\Parser\JoomlaRequestParser;
|
||||
use Nextend\Framework\Request\Parser\WordPressRequestParser;
|
||||
|
||||
class Storage {
|
||||
|
||||
public $originalStorage;
|
||||
public $returnOriginal;
|
||||
public $storage;
|
||||
|
||||
/**
|
||||
* @var AbstractRequestParser
|
||||
*/
|
||||
public $parserInstance;
|
||||
|
||||
public function __construct($data, $returnOriginal = false) {
|
||||
$this->parserInstance = new WordPressRequestParser();
|
||||
|
||||
|
||||
$this->originalStorage = $data;
|
||||
$this->returnOriginal = $returnOriginal;
|
||||
$this->storage = array();
|
||||
}
|
||||
|
||||
public function set($var, $val) {
|
||||
$this->storage[$var] = $val;
|
||||
}
|
||||
|
||||
protected function get($var, $default = false) {
|
||||
if (!$this->returnOriginal) {
|
||||
if (isset($this->storage[$var])) {
|
||||
return $this->storage[$var];
|
||||
} else if (isset($this->originalStorage[$var])) {
|
||||
|
||||
$this->storage[$var] = $this->parserInstance->parseData($this->originalStorage[$var]);
|
||||
|
||||
return $this->storage[$var];
|
||||
}
|
||||
} else if (isset($this->originalStorage[$var])) {
|
||||
return $this->originalStorage[$var];
|
||||
}
|
||||
|
||||
return $default;
|
||||
}
|
||||
|
||||
public function getVar($var, $default = null) {
|
||||
return $this->get($var, $default);
|
||||
}
|
||||
|
||||
public function getInt($var, $default = 0) {
|
||||
return intval($this->get($var, $default));
|
||||
}
|
||||
|
||||
public function getCmd($var, $default = '') {
|
||||
return preg_replace("/[^\w_]/", "", $this->get($var, $default));
|
||||
}
|
||||
|
||||
public function exists($var) {
|
||||
|
||||
if (isset($this->storage[$var])) {
|
||||
return true;
|
||||
} else if (isset($this->originalStorage[$var])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user