Browse Source

abstraction for session handling

master
Cerys 4 weeks ago
parent
commit
fae5adbbbd
  1. 25
      App/Wrappers/SessionWrapper.php
  2. 5
      App/Wrappers/TwigWrapper.php
  3. 3
      Pages/profile.php
  4. 9
      Public/API/V1/RateTune.php

25
App/Wrappers/SessionWrapper.php

@ -0,0 +1,25 @@
<?php
namespace App\Wrappers;
use App\Enumerators\SessionElement;
class SessionWrapper
{
public static function Start(): void
{
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
}
public static function Get(SessionElement $target)
{
self::Start();
if(array_key_exists(key: $target->value, array: $_SESSION))
{
return $_SESSION[$target->value];
}
die();
}
}

5
App/Wrappers/TwigWrapper.php

@ -28,10 +28,7 @@ class TwigWrapper
$this->loader = new FilesystemLoader(dirname($_SERVER["DOCUMENT_ROOT"]) . "/Templates/");
$this->twig = new Environment($this->loader, ["debug" => true]);
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
SessionWrapper::Start();
$this->twig->addGlobal('_SESSION_', $_SESSION);

3
Pages/profile.php

@ -2,6 +2,7 @@
use App\Enumerators\SessionElement;
use App\Wrappers\DatabaseInteractions;
use App\Wrappers\SessionWrapper;
use App\Wrappers\TwigWrapper;
require_once __DIR__ . "/../vendor/autoload.php";
@ -14,7 +15,7 @@ $yourTunes = $db->RunSelect(
table: 'Tunes'
)
->where(cond: 'T.CreatedBy LIKE :__user_id__')
->bindValue(name: '__user_id__', value: $_SESSION[SessionElement::USER_ID->value])
->bindValue(name: '__user_id__', value: SessionWrapper::Get(target: SessionElement::USER_ID))
);
TwigWrapper::RenderTwig(

9
Public/API/V1/RateTune.php

@ -2,11 +2,12 @@
use App\Enumerators\SessionElement;
use App\Wrappers\DatabaseInteractions;
use App\Wrappers\SessionWrapper;
use App\Wrappers\SQLQueryBuilderWrapper;
require_once __DIR__ . "/../../../vendor/autoload.php";
if(!$_SESSION[SessionElement::IS_LOGGED_IN->value])
if(!SessionWrapper::Get(target: SessionElement::IS_LOGGED_IN))
{
die();
}
@ -34,7 +35,7 @@ $existingRating = $db->RunSelect(
)
->where(cond: 'CreatedBy=:__user_id__')
->where(cond: 'TuneID=:__tune_id__')
->bindValue(name: '__user_id__', value: $_SESSION[SessionElement::USER_ID->value])
->bindValue(name: '__user_id__', value: SessionWrapper::Get(target: SessionElement::USER_ID))
->bindValue(name: '__tune_id__', value: $_GET['tune-id'])
);
@ -47,7 +48,7 @@ if(sizeof($existingRating) == 0)
->set(col: 'CreatedBy', value: ':__user_id__')
->set(col: 'TuneID', value: ':__tune_id__')
->set(col: 'Rating', value: ':__rating__')
->bindValue(name: '__user_id__', value: $_SESSION[SessionElement::USER_ID->value])
->bindValue(name: '__user_id__', value: SessionWrapper::Get(target: SessionElement::USER_ID))
->bindValue(name: '__tune_id__', value: $_GET['tune-id'])
->bindValue(name: '__rating__', value: $ratingValue)
);
@ -61,7 +62,7 @@ elseif(sizeof($existingRating) == 1)
->set(col: 'Rating', value: ':__rating__')
->where(cond: 'CreatedBy=:__user_id__')
->where(cond: 'TuneID=:__tune_id__')
->bindValue(name: '__user_id__', value: $_SESSION[SessionElement::USER_ID->value])
->bindValue(name: '__user_id__', value: SessionWrapper::Get(target: SessionElement::USER_ID))
->bindValue(name: '__tune_id__', value: $_GET['tune-id'])
->bindValue(name: '__rating__', value: $ratingValue)
);

Loading…
Cancel
Save