Passed
Push — master ( d26101...1eb4af )
by Gabor
03:11
created

AbstractMiddlewareAction   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 41
c 0
b 0
f 0
wmc 1
lcom 0
cbo 1
ccs 7
cts 7
cp 1
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
getTemplateName() 0 1 ?
getTemplateData() 0 1 ?
A __invoke() 0 11 1
1
<?php
2
/**
3
 * WebHemi.
4
 *
5
 * PHP version 5.6
6
 *
7
 * @copyright 2012 - 2016 Gixx-web (http://www.gixx-web.com)
8
 * @license   https://opensource.org/licenses/MIT The MIT License (MIT)
9
 *
10
 * @link      http://www.gixx-web.com
11
 */
12
namespace WebHemi\Middleware;
13
14
use WebHemi\Adapter\Http\ResponseInterface;
15
use WebHemi\Adapter\Http\ServerRequestInterface;
16
17
/**
18
 * Class AbstractMiddlewareAction.
19
 */
20
abstract class AbstractMiddlewareAction implements MiddlewareInterface, MiddlewareActionInterface
21
{
22
    /** @var ServerRequestInterface */
23
    protected $request;
24
    /** @var ResponseInterface */
25
    protected $response;
26
27
    /**
28
     * Gets template map name or template file path.
29
     *
30
     * @return string
31
     */
32
    abstract public function getTemplateName();
33
34
    /**
35
     * Gets template data.
36
     *
37
     * @return array
38
     */
39
    abstract public function getTemplateData();
40
41
    /**
42
     * Invokes the middleware action.
43
     *
44
     * @param ServerRequestInterface $request
45
     * @param ResponseInterface $response
46
     *
47
     * @return ResponseInterface
48
     */
49 3
    final public function __invoke(ServerRequestInterface &$request, ResponseInterface $response)
50
    {
51 3
        $this->request = $request;
52 3
        $this->response = $response;
53
54 3
        $request = $this->request
55 3
            ->withAttribute(ServerRequestInterface::REQUEST_ATTR_DISPATCH_TEMPLATE, $this->getTemplateName())
56 3
            ->withAttribute(ServerRequestInterface::REQUEST_ATTR_DISPATCH_DATA, $this->getTemplateData());
57
58 2
        return $this->response;
59
    }
60
}
61