Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/*
4
 * This file is part of the Symfony package.
5
 *
6
 * (c) Fabien Potencier <fabien@symfony.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Symfony\Component\HttpFoundation\Session;
13
 
14
use Symfony\Component\HttpFoundation\RequestStack;
15
use Symfony\Component\HttpFoundation\Session\Storage\SessionStorageFactoryInterface;
16
 
17
// Help opcache.preload discover always-needed symbols
18
class_exists(Session::class);
19
 
20
/**
21
 * @author Jérémy Derussé <jeremy@derusse.com>
22
 */
23
class SessionFactory implements SessionFactoryInterface
24
{
25
    private RequestStack $requestStack;
26
    private SessionStorageFactoryInterface $storageFactory;
27
    private ?\Closure $usageReporter;
28
 
29
    public function __construct(RequestStack $requestStack, SessionStorageFactoryInterface $storageFactory, callable $usageReporter = null)
30
    {
31
        $this->requestStack = $requestStack;
32
        $this->storageFactory = $storageFactory;
33
        $this->usageReporter = null === $usageReporter ? null : $usageReporter(...);
34
    }
35
 
36
    public function createSession(): SessionInterface
37
    {
38
        return new Session($this->storageFactory->createStorage($this->requestStack->getMainRequest()), null, null, $this->usageReporter);
39
    }
40
}