BaseController   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
wmc 3
c 0
b 0
f 0
lcom 0
cbo 2
dl 0
loc 23
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A smartGoBack() 0 13 3
1
<?php
2
3
namespace app\controllers;
4
5
use Yii;
6
use yii\web\Request;
7
use yii\web\Controller;
8
9
/**
10
 * BaseController allows to set global controller actions.
11
 */
12
class BaseController extends Controller
13
{
14
    /**
15
     * Tries to redirect to appropriate page
16
     * On delete action, go to item list
17
     * Else go back to referer.
18
     *
19
     * @return \yii\web\Response redirect
20
     */
21
    public function smartGoBack()
22
    {
23
        // Current action is delete
24
        if (preg_match('@(.*)/delete$@', Yii::$app->request->pathInfo, $res)) {
25
            $controller = $res[1];
26
            // Referer is view of deleted item
27
            if (preg_match('@'.$controller.'/view@', Yii::$app->request->referrer)) {
28
                return $this->redirect([$controller.'/index']);
29
            }
30
        }
31
32
        return $this->redirect(Yii::$app->request->referrer);
33
    }
34
}
35