Passed
Push — develop ( 7af1af...b22d40 )
by Jens
02:32
created

CmsRouting::getReturnPath()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
1
<?php
2
/**
3
 * Created by IntelliJ IDEA.
4
 * User: jensk
5
 * Date: 30-1-2017
6
 * Time: 13:06
7
 */
8
9
namespace CloudControl\Cms\components\cms;
10
11
12
use CloudControl\Cms\cc\Request;
13
use CloudControl\Cms\components\CmsComponent;
14
15
abstract class CmsRouting
16
{
17
    protected static $routes = array();
18
19
    /**
20
     * CmsRouting constructor.
21
     *
22
     * @param Request $request
23
     * @param string $relativeCmsUri
24
     * @param CmsComponent $cmsComponent
25
     */
26
    abstract public function __construct(Request $request, $relativeCmsUri, CmsComponent $cmsComponent);
27
28
    /**
29
     * @param Request $request
30
     * @param string $relativeCmsUri
31
     * @param CmsComponent $cmsComponent
32
     * @throws \Exception
33
     */
34
    protected function doRouting($request, $relativeCmsUri, $cmsComponent)
35
    {
36
        if (array_key_exists($relativeCmsUri, $this::$routes)) {
37
            $method = $this::$routes[$relativeCmsUri];
38
            $this->$method($request, $cmsComponent);
39
        }
40
    }
41
42
    /**
43
     * @param $request
44
     * @return string
45
     */
46
    protected function getReturnPath($request)
47
    {
48
        $returnPathParts = explode('/', $request::$get['slug']);
49
        array_pop($returnPathParts);
50
        return '/' . implode('/', $returnPathParts);
51
    }
52
}