Completed
Push — master ( a09c74...b4437a )
by Gabor
03:33
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 1
Bugs 1 Features 0
Metric Value
wmc 1
c 1
b 1
f 0
lcom 0
cbo 1
dl 0
loc 41
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
use WebHemi\DataEntity\User\UserEntity;
17
use WebHemi\DataStorage\User\UserStorage;
18
use WebHemi\Middleware\MiddlewareInterface;
19
use WebHemi\Middleware\MiddlewareActionInterface;
20
21
/**
22
 * Class AbstractMiddlewareAction.
23
 */
24
abstract class AbstractMiddlewareAction implements MiddlewareInterface, MiddlewareActionInterface
25
{
26
    /** @var ServerRequestInterface */
27
    protected $request;
28
    /** @var ResponseInterface */
29
    protected $response;
30
31
    /**
32
     * Gets template map name or template file path.
33
     *
34
     * @return string
35
     */
36
    abstract public function getTemplateName();
37
38
    /**
39
     * Gets template data.
40
     *
41
     * @return array
42
     */
43
    abstract public function getTemplateData();
44
45
    /**
46
     * Invokes the middleware action.
47
     *
48
     * @param ServerRequestInterface $request
49
     * @param ResponseInterface $response
50
     *
51
     * @return ResponseInterface
52
     */
53 3
    final public function __invoke(ServerRequestInterface &$request, ResponseInterface $response)
54
    {
55 3
        $this->request = $request;
56 3
        $this->response = $response;
57
58 3
        $request = $this->request
59 3
            ->withAttribute(ServerRequestInterface::REQUEST_ATTR_DISPATCH_TEMPLATE, $this->getTemplateName())
60 3
            ->withAttribute(ServerRequestInterface::REQUEST_ATTR_DISPATCH_DATA, $this->getTemplateData());
61
62 2
        return $this->response;
63
    }
64
}
65