|
1 | 1 | <?php |
2 | 2 |
|
3 | | -declare(strict_types=1); |
4 | | - |
5 | 3 | namespace Tempest\Http\Session; |
6 | 4 |
|
7 | | -use Tempest\Http\Session\Managers\FileSessionManager; |
8 | | -use Tempest\Http\Session\Resolvers\CookieSessionIdResolver; |
| 5 | +use Tempest\Container\Container; |
| 6 | +use Tempest\Http\Session\SessionIdResolver; |
9 | 7 |
|
10 | | -final class SessionConfig |
| 8 | +interface SessionConfig |
11 | 9 | { |
12 | | - public function __construct( |
13 | | - /** |
14 | | - * Path to the sessions storage directory, relative to the internal storage. |
15 | | - */ |
16 | | - public string $path = 'sessions', |
17 | | - |
18 | | - /** |
19 | | - * Time required for a session to expire. Defaults to one month. |
20 | | - */ |
21 | | - public int $expirationInSeconds = 60 * 60 * 24 * 30, |
| 10 | + /** |
| 11 | + * Time required for a session to expire. Defaults to one month. |
| 12 | + */ |
| 13 | + public int $expirationInSeconds { |
| 14 | + get; |
| 15 | + } |
22 | 16 |
|
23 | | - /** |
24 | | - * @template SessionManager of \Tempest\Http\Session\SessionManager |
25 | | - * @var class-string<SessionManager> |
26 | | - */ |
27 | | - public string $managerClass = FileSessionManager::class, |
| 17 | + /** |
| 18 | + * @template SessionIdResolver of \Tempest\Http\Session\SessionIdResolver |
| 19 | + * @var class-string<SessionIdResolver> |
| 20 | + */ |
| 21 | + public string $idResolverClass { |
| 22 | + get; |
| 23 | + } |
28 | 24 |
|
29 | | - /** |
30 | | - * @template SessionIdResolver of \Tempest\Http\Session\SessionIdResolver |
31 | | - * @var class-string<SessionIdResolver> |
32 | | - */ |
33 | | - public string $idResolverClass = CookieSessionIdResolver::class, |
34 | | - ) {} |
| 25 | + public function createManager(Container $container): SessionManager; |
35 | 26 | } |
0 commit comments