PHP 8.3.31
Preview: ArraySessionHandler.php Size: 2.57 KB
/home/getspomw/royalsquad.us/vendor/laravel/framework/src/Illuminate/Session/ArraySessionHandler.php

<?php

namespace Illuminate\Session;

use Illuminate\Support\InteractsWithTime;
use SessionHandlerInterface;

class ArraySessionHandler implements SessionHandlerInterface
{
    use InteractsWithTime;

    /**
     * The array of stored values.
     *
     * @var array
     */
    protected $storage = [];

    /**
     * The number of minutes the session should be valid.
     *
     * @var int
     */
    protected $minutes;

    /**
     * Create a new array driven handler instance.
     *
     * @param  int  $minutes
     * @return void
     */
    public function __construct($minutes)
    {
        $this->minutes = $minutes;
    }

    /**
     * {@inheritdoc}
     *
     * @return bool
     */
    public function open($savePath, $sessionName): bool
    {
        return true;
    }

    /**
     * {@inheritdoc}
     *
     * @return bool
     */
    public function close(): bool
    {
        return true;
    }

    /**
     * {@inheritdoc}
     *
     * @return string|false
     */
    public function read($sessionId): string|false
    {
        if (! isset($this->storage[$sessionId])) {
            return '';
        }

        $session = $this->storage[$sessionId];

        $expiration = $this->calculateExpiration($this->minutes * 60);

        if (isset($session['time']) && $session['time'] >= $expiration) {
            return $session['data'];
        }

        return '';
    }

    /**
     * {@inheritdoc}
     *
     * @return bool
     */
    public function write($sessionId, $data): bool
    {
        $this->storage[$sessionId] = [
            'data' => $data,
            'time' => $this->currentTime(),
        ];

        return true;
    }

    /**
     * {@inheritdoc}
     *
     * @return bool
     */
    public function destroy($sessionId): bool
    {
        if (isset($this->storage[$sessionId])) {
            unset($this->storage[$sessionId]);
        }

        return true;
    }

    /**
     * {@inheritdoc}
     *
     * @return int
     */
    public function gc($lifetime): int
    {
        $expiration = $this->calculateExpiration($lifetime);

        $deletedSessions = 0;

        foreach ($this->storage as $sessionId => $session) {
            if ($session['time'] < $expiration) {
                unset($this->storage[$sessionId]);
                $deletedSessions++;
            }
        }

        return $deletedSessions;
    }

    /**
     * Get the expiration time of the session.
     *
     * @param  int  $seconds
     * @return int
     */
    protected function calculateExpiration($seconds)
    {
        return $this->currentTime() - $seconds;
    }
}

Directory Contents

Dirs: 2 × Files: 15

Name Size Perms Modified Actions
Console DIR
- drwxrwxrwx 2025-09-17 06:52:58
Edit Download
- drwxrwxrwx 2025-09-17 06:52:58
Edit Download
2.57 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
1.90 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
1.12 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
2.88 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
6.98 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
1.73 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
254 B lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
2.52 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
1.05 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
986 B lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
7.10 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
1.45 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
17.56 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
3.46 KB lrw-rw-rw- 2025-09-17 06:52:58
Edit Download
112 B lrw-rw-rw- 2025-09-17 06:52:58
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).