1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
-
- namespace Illuminate\Session;
-
- use SessionHandlerInterface;
- use Illuminate\Contracts\Cache\Repository as CacheContract;
-
- class CacheBasedSessionHandler implements SessionHandlerInterface
- {
- /**
- * The cache repository instance.
- *
- * @var \Illuminate\Contracts\Cache\Repository
- */
- protected $cache;
-
- /**
- * The number of minutes to store the data in the cache.
- *
- * @var int
- */
- protected $minutes;
-
- /**
- * Create a new cache driven handler instance.
- *
- * @param \Illuminate\Contracts\Cache\Repository $cache
- * @param int $minutes
- * @return void
- */
- public function __construct(CacheContract $cache, $minutes)
- {
- $this->cache = $cache;
- $this->minutes = $minutes;
- }
-
- /**
- * {@inheritdoc}
- */
- public function open($savePath, $sessionName)
- {
- return true;
- }
-
- /**
- * {@inheritdoc}
- */
- public function close()
- {
- return true;
- }
-
- /**
- * {@inheritdoc}
- */
- public function read($sessionId)
- {
- return $this->cache->get($sessionId, '');
- }
-
- /**
- * {@inheritdoc}
- */
- public function write($sessionId, $data)
- {
- return $this->cache->put($sessionId, $data, $this->minutes);
- }
-
- /**
- * {@inheritdoc}
- */
- public function destroy($sessionId)
- {
- return $this->cache->forget($sessionId);
- }
-
- /**
- * {@inheritdoc}
- */
- public function gc($lifetime)
- {
- return true;
- }
-
- /**
- * Get the underlying cache repository.
- *
- * @return \Illuminate\Contracts\Cache\Repository
- */
- public function getCache()
- {
- return $this->cache;
- }
- }
|