This commit is contained in:
2024-05-20 15:37:46 +03:00
commit 00b7dbd0b7
10404 changed files with 3285853 additions and 0 deletions

View File

@ -0,0 +1,11 @@
<?php
namespace Nextend\Framework\Request\Parser;
abstract class AbstractRequestParser {
public abstract function parseData($data);
}

View File

@ -0,0 +1,10 @@
<?php
namespace Nextend\Framework\Request\Parser;
class JoomlaRequestParser extends AbstractRequestParser {
public function parseData($data) {
return $data;
}
}

View File

@ -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;
}
}

View File

@ -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();

View File

@ -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;
}
}