Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9fb52d116d | ||
|
|
1ffad8d84a | ||
|
|
1d37f96799 | ||
|
|
e500d67171 | ||
|
|
cf621dbaef | ||
|
|
5eaf931847 | ||
|
|
efe3b0ad5a | ||
|
|
d9a3deef90 | ||
|
|
0c121af290 | ||
|
|
7b03cf952e | ||
|
|
33e3fba104 |
@@ -11,5 +11,5 @@ composer require rmphp/kernel
|
||||
```
|
||||
|
||||
```bash
|
||||
composer require rmphp/kernel:"^2.0"
|
||||
composer require rmphp/kernel:"^5.0"
|
||||
```
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"ext-yaml": "*",
|
||||
"psr/log": "^3.0.0",
|
||||
"psr/container": "^1.0",
|
||||
"rmphp/foundation": "^1.0"
|
||||
"rmphp/foundation": "^2.1"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
||||
36
src/App.php
36
src/App.php
@@ -61,9 +61,7 @@ class App extends Main {
|
||||
$log = "Method ".$appHandler->className."/".$appHandler->methodName;
|
||||
}
|
||||
$this->syslogger()->log("handlers", "OK - ".$log);
|
||||
/**
|
||||
* 1. Если на этапе итерации уже получен ответ ResponseInterface - досрочно отдаем результат в эмиттер
|
||||
*/
|
||||
|
||||
if($response instanceof ResponseInterface) {
|
||||
return $response;
|
||||
}
|
||||
@@ -71,14 +69,7 @@ class App extends Main {
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 2. Если итерации закончились и задан обьект Content им создаем результат для эмиттера
|
||||
*/
|
||||
if($this->template() && !empty($this->template()->getResponse())){
|
||||
$this->globals()->response()->getBody()->write($this->template()->getResponse());
|
||||
return$this->globals()->response();
|
||||
}
|
||||
/**
|
||||
* 3. Отдаем пустой результат если не определен шаблонизатор
|
||||
* Отдаем пустой результат
|
||||
*/
|
||||
return $this->defaultPage(404);
|
||||
}
|
||||
@@ -91,7 +82,7 @@ class App extends Main {
|
||||
$this->syslogger()->warning("Exception: ".$exception->getMessage()." : ".$exception->getFile()." : ".$exception->getLine());
|
||||
}
|
||||
catch (AppError $appError){
|
||||
if($this->logger()) $this->logger()->warning($appError->getMessage()." on ".$appError->getFile().":".$appError->getLine());
|
||||
if($this->logger()) $this->logger()->error($appError->getMessage()." on ".$appError->getFile().":".$appError->getLine());
|
||||
$this->syslogger()->error("Error: ".$appError->getMessage()." : ".$appError->getFile()." : ".$appError->getLine());
|
||||
}
|
||||
catch (\Error $error) {
|
||||
@@ -99,7 +90,7 @@ class App extends Main {
|
||||
$this->syslogger()->error("Error: ".$error->getMessage()." : ".$error->getFile()." : ".$error->getLine());
|
||||
}
|
||||
/**
|
||||
* 4. Отдаем ошибку без шаблона
|
||||
* Отдаем после ошибки
|
||||
*/
|
||||
return $this->defaultPage(501);
|
||||
}
|
||||
@@ -175,17 +166,22 @@ class App extends Main {
|
||||
$params = (!empty($appNode['params']) && is_string($appNode['params'])) ? explode(",",str_replace(" ", "", $appNode['params'])) : [];
|
||||
$this->appRoutes[] = new MatchObject($className, $methodName, $params);
|
||||
}
|
||||
elseif(!empty($appNode['router']) && is_array($appNode['router'])){
|
||||
if(empty($this->router)) throw AppError::invalidRequiredObject("Application config without router");
|
||||
$this->router->setStartPoint($mountKey);
|
||||
$this->router->withRules($appNode['router']);
|
||||
|
||||
$routes = $this->router->match($this->globals()->request()) ?? [];
|
||||
foreach ($routes as $route){
|
||||
$this->appRoutes[] = $route;
|
||||
}
|
||||
}
|
||||
elseif(!empty($appNode['router']) && file_exists($this->baseDir."/".$appNode['router'])){
|
||||
|
||||
if(empty($this->router)) throw AppError::invalidRequiredObject("Application config without router");
|
||||
$this->router->setStartPoint($mountKey);
|
||||
|
||||
if(pathinfo($this->baseDir."/".$appNode['router'])['extension'] == "php") {
|
||||
$this->router->withRules(include_once $this->baseDir."/".$appNode['router']);
|
||||
}
|
||||
elseif(pathinfo($this->baseDir."/".$appNode['router'])['extension'] == "yaml") {
|
||||
$this->router->withRules(yaml_parse_file($this->baseDir."/".$appNode['router']));
|
||||
}
|
||||
ob_start(); $routes = include_once $this->baseDir."/".$appNode['router']; ob_end_clean();
|
||||
if(is_array($routes)) $this->router->withRules($routes);
|
||||
|
||||
$routes = $this->router->match($this->globals()->request()) ?? [];
|
||||
foreach ($routes as $route){
|
||||
|
||||
@@ -4,12 +4,12 @@ namespace Rmphp\Kernel;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Message\UploadedFileInterface;
|
||||
|
||||
class Globals {
|
||||
|
||||
private ServerRequestInterface $request;
|
||||
private ResponseInterface $response;
|
||||
private Session $session;
|
||||
|
||||
const INT = "INT";
|
||||
const STRING = "STRING";
|
||||
@@ -83,16 +83,6 @@ class Globals {
|
||||
return (!empty($name)) ? isset($this->request->getCookieParams()[$name]) : !empty($this->request->getCookieParams());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return bool
|
||||
*/
|
||||
public function isSession(string $name = "") : bool {
|
||||
if(!class_exists(Session::class)) return false;
|
||||
if(!isset($this->session)) $this->session = new Session();
|
||||
return (!empty($name)) ? isset($this->session->getSession()[$name]) : !empty($this->session->getSession());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return bool
|
||||
@@ -139,21 +129,17 @@ class Globals {
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param string $type
|
||||
* @return array|int|string
|
||||
* @return array|UploadedFileInterface|null
|
||||
*/
|
||||
public function session(string $name = "", string $type = "") {
|
||||
if(!class_exists(Session::class)) return null;
|
||||
if(!isset($this->session)) $this->session = new Session();
|
||||
return $this->onGlobal($this->session->getSession(), $name, $type);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return array|int|string
|
||||
*/
|
||||
public function files(string $name = "") {
|
||||
return $this->onGlobal($this->request->getUploadedFiles(), $name);
|
||||
public function files(string $name = ""): array|UploadedFileInterface|null {
|
||||
$name = strtolower($name);
|
||||
$var = $this->request->getUploadedFiles();
|
||||
if (!empty($name))
|
||||
{
|
||||
if (!isset($var[$name])) return null;
|
||||
return $var[$name];
|
||||
}
|
||||
return $var;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -174,18 +160,6 @@ class Globals {
|
||||
$this->setResponse($this->response->withAddedHeader($name, $value));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param $value
|
||||
* @return void
|
||||
*/
|
||||
public function setSession(string $name, $value = null) : void {
|
||||
if(class_exists(Session::class)) {
|
||||
if(!isset($this->session)) $this->session = new Session();
|
||||
$this->session->setSession($name, $value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
@@ -209,17 +183,6 @@ class Globals {
|
||||
$this->addHeader("Set-Cookie", implode("; ", $cookie));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $name
|
||||
* @return void
|
||||
*/
|
||||
public function clearSession(string $name = null) : void{
|
||||
if(class_exists(Session::class)) {
|
||||
if(!isset($this->session)) $this->session = new Session();
|
||||
$this->session->clearSession($name);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param string $path
|
||||
@@ -232,14 +195,13 @@ class Globals {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param array $var
|
||||
* @param string $name
|
||||
* @param string $type
|
||||
* @return array|int|string
|
||||
* @return mixed
|
||||
*/
|
||||
private function onGlobal(array $var, string $name, string $type = "") {
|
||||
private function onGlobal(array $var, string $name, string $type = ""): mixed {
|
||||
$name = strtolower($name);
|
||||
if (!empty($name))
|
||||
{
|
||||
@@ -258,4 +220,4 @@ class Globals {
|
||||
return $var;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Rmphp\Kernel;
|
||||
|
||||
|
||||
class Session {
|
||||
|
||||
public function __construct(string $name = "usi") {
|
||||
if(session_status() == PHP_SESSION_NONE) {
|
||||
session_name($name);
|
||||
session_start();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getSession() : array {
|
||||
return $_SESSION;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param $value
|
||||
*/
|
||||
public function setSession(string $name, $value = null) : void {
|
||||
$_SESSION[$name] = $value;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $name
|
||||
* @return void
|
||||
*/
|
||||
public function clearSession(string $name = null) : void {
|
||||
if (isset($name)) unset($_SESSION[$name]);
|
||||
else $_SESSION = [];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user