forked from apivalk/apivalk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApivalkConfiguration.php
More file actions
74 lines (63 loc) · 1.83 KB
/
ApivalkConfiguration.php
File metadata and controls
74 lines (63 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
declare(strict_types=1);
namespace apivalk\apivalk;
use apivalk\apivalk\Middleware\MiddlewareStack;
use apivalk\apivalk\Http\Renderer\JsonRenderer;
use apivalk\apivalk\Http\Renderer\RendererInterface;
use apivalk\apivalk\Router\AbstractRouter;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
class ApivalkConfiguration
{
/** @var AbstractRouter */
private $router;
/** @var RendererInterface */
private $renderer;
/** @var MiddlewareStack */
private $middlewareStack;
/** @var callable|null */
private $exceptionHandler;
/** @var ContainerInterface|null */
private $container;
/** @var LoggerInterface */
private $logger;
public function __construct(
AbstractRouter $router,
?RendererInterface $renderer = null,
?callable $exceptionHandler = null,
?ContainerInterface $container = null,
?LoggerInterface $logger = null
) {
$this->router = $router;
$this->middlewareStack = new MiddlewareStack();
$this->renderer = $renderer ?? new JsonRenderer();
$this->exceptionHandler = $exceptionHandler;
$this->container = $container;
$this->logger = $logger ?? new NullLogger();
}
public function getMiddlewareStack(): MiddlewareStack
{
return $this->middlewareStack;
}
public function getRouter(): AbstractRouter
{
return $this->router;
}
public function getRenderer(): RendererInterface
{
return $this->renderer;
}
public function getExceptionHandler(): ?callable
{
return $this->exceptionHandler;
}
public function getContainer(): ?ContainerInterface
{
return $this->container;
}
public function getLogger(): LoggerInterface
{
return $this->logger;
}
}