AbstractAction::dispatch()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
ccs 0
cts 0
cp 0
c 0
b 0
f 0
nc 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Acelaya\Website\Action;
5
6
use Doctrine\Common\Cache\Cache;
7
use Fig\Http\Message\RequestMethodInterface;
8
use Fig\Http\Message\StatusCodeInterface;
9
use Interop\Http\ServerMiddleware\DelegateInterface;
10
use Interop\Http\ServerMiddleware\MiddlewareInterface;
11
use Psr\Http\Message\ResponseInterface as Response;
12
use Psr\Http\Message\ServerRequestInterface as Request;
13
use Zend\Expressive\Template\TemplateRendererInterface;
14
15
abstract class AbstractAction implements MiddlewareInterface, RequestMethodInterface, StatusCodeInterface
16
{
17
    /**
18
     * @var TemplateRendererInterface
19
     */
20
    protected $renderer;
21
    /**
22
     * @var Cache
23
     */
24
    protected $cache;
25
26
    public function __construct(TemplateRendererInterface $renderer)
27
    {
28 7
        $this->renderer = $renderer;
29
    }
30 7
31 7
    /**
32
     * Process an incoming server request and return a response, optionally delegating
33
     * to the next middleware component to create the response.
34
     *
35
     * @param Request $request
36
     * @param DelegateInterface $delegate
37
     *
38
     * @return Response
39
     */
40
    public function process(Request $request, DelegateInterface $delegate)
41
    {
42
        return $this->dispatch($request, $delegate);
43
    }
44
45
    /**
46
     * Returns the content to render
47
     *
48
     * @param Request $request
49
     * @param DelegateInterface $delegate
50
     * @return Response
51
     */
52
    abstract public function dispatch(Request $request, DelegateInterface $delegate): Response;
53
}
54