MAPG-115 add new classes to store request data (get, post, session, etc.)
This commit is contained in:
parent
ecaf8ca9d4
commit
fe814908c7
10
src/Interfaces/Authentication/IUser.php
Normal file
10
src/Interfaces/Authentication/IUser.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php namespace MapGuesser\Interfaces\Authentication;
|
||||
|
||||
interface IUser
|
||||
{
|
||||
const PERMISSION_NORMAL = 0;
|
||||
|
||||
const PERMISSION_ADMIN = 1;
|
||||
|
||||
public function hasPermission(int $permission): bool;
|
||||
}
|
14
src/Interfaces/Request/IRequest.php
Normal file
14
src/Interfaces/Request/IRequest.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php namespace MapGuesser\Interfaces\Request;
|
||||
|
||||
use MapGuesser\Interfaces\Authentication\IUser;
|
||||
|
||||
interface IRequest
|
||||
{
|
||||
public function query(string $key);
|
||||
|
||||
public function post(string $key);
|
||||
|
||||
public function session(): ISession;
|
||||
|
||||
public function user(): ?IUser;
|
||||
}
|
12
src/Interfaces/Request/ISession.php
Normal file
12
src/Interfaces/Request/ISession.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php namespace MapGuesser\Interfaces\Request;
|
||||
|
||||
interface ISession
|
||||
{
|
||||
public function has(string $key): bool;
|
||||
|
||||
public function get(string $key);
|
||||
|
||||
public function set(string $key, $value): void;
|
||||
|
||||
public function delete(string $key): void;
|
||||
}
|
57
src/Request/Request.php
Normal file
57
src/Request/Request.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php namespace MapGuesser\Request;
|
||||
|
||||
use MapGuesser\Interfaces\Authentication\IUser;
|
||||
use MapGuesser\Interfaces\Request\IRequest;
|
||||
use MapGuesser\Interfaces\Request\ISession;
|
||||
use MapGuesser\Model\User;
|
||||
|
||||
class Request implements IRequest
|
||||
{
|
||||
private array $get;
|
||||
|
||||
private array $routeParams;
|
||||
|
||||
private array $post;
|
||||
|
||||
private Session $session;
|
||||
|
||||
public function __construct(array &$get, array &$routeParams, array &$post, array &$session)
|
||||
{
|
||||
$this->get = &$get;
|
||||
$this->routeParams = &$routeParams;
|
||||
$this->post = &$post;
|
||||
$this->session = new Session($session);
|
||||
}
|
||||
|
||||
public function query($key)
|
||||
{
|
||||
if (isset($this->get[$key])) {
|
||||
return $this->get[$key];
|
||||
}
|
||||
|
||||
if (isset($this->routeParams[$key])) {
|
||||
return $this->routeParams[$key];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function post($key)
|
||||
{
|
||||
if (isset($this->post[$key])) {
|
||||
return $this->post[$key];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function session(): ISession
|
||||
{
|
||||
return $this->session;
|
||||
}
|
||||
|
||||
public function user(): ?IUser
|
||||
{
|
||||
return $this->session->get('user');
|
||||
}
|
||||
}
|
37
src/Request/Session.php
Normal file
37
src/Request/Session.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php namespace MapGuesser\Request;
|
||||
|
||||
use MapGuesser\Interfaces\Request\ISession;
|
||||
|
||||
class Session implements ISession
|
||||
{
|
||||
private array $data;
|
||||
|
||||
public function __construct(array &$data)
|
||||
{
|
||||
$this->data = &$data;
|
||||
}
|
||||
|
||||
public function has($key): bool
|
||||
{
|
||||
return isset($this->data[$key]);
|
||||
}
|
||||
|
||||
public function get($key)
|
||||
{
|
||||
if (isset($this->data[$key])) {
|
||||
return $this->data[$key];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function set($key, $value): void
|
||||
{
|
||||
$this->data[$key] = $value;
|
||||
}
|
||||
|
||||
public function delete($key): void
|
||||
{
|
||||
unset($this->data[$key]);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user