madbob/GASdottoNG

View on GitHub
code/app/Singletons/TempCache.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

/*
    Questo opera essenzialmente come Cache::store('array') ma senza l'overhead
    della gestione delle scadenze (questa è una cache volatile, vale solo per
    l'esecuzione corrente).
    Reminder: non utilizzare "array" come driver per le cache native Laravel,
    qua e là vengono davvero usate per conservare valori temporanei tra una
    sessione e l'altra
*/

namespace App\Singletons;

class TempCache
{
    private $store = [];

    public function put($key, $value)
    {
        $this->store[$key] = $value;
    }

    public function get($key)
    {
        return $this->store[$key] ?? null;
    }

    public function has($key)
    {
        return array_key_exists($key, $this->store);
    }

    public function forget($key)
    {
        if ($this->has($key)) {
            unset($this->store[$key]);
        }
    }

    public function wipeAll()
    {
        $this->store = [];
    }
}