Brands::__construct()   A
last analyzed

Complexity

Conditions 4
Paths 3

Size

Total Lines 26

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 26
rs 9.504
c 0
b 0
f 0
cc 4
nc 3
nop 0
1
<?php namespace VojtaSvoboda\Brands\Controllers;
2
3
use BackendMenu;
4
use Backend\Classes\Controller;
5
use Input;
6
use Session;
7
use VojtaSvoboda\Brands\Models\Category;
8
9
/**
10
 * Brands Back-end Controller
11
 */
12
class Brands extends Controller
13
{
14
    public $implement = [
15
        'Backend\Behaviors\FormController',
16
        'Backend\Behaviors\ListController',
17
        'Backend\Behaviors\ReorderController',
18
    ];
19
20
    public $formConfig = 'config_form.yaml';
21
    public $listConfig = 'config_list.yaml';
22
    public $reorderConfig = 'config_reorder.yaml';
23
24
    public $requiredPermissions = [
25
        'vojtasvoboda.brands.brands',
26
    ];
27
28
    public function __construct()
29
    {
30
        parent::__construct();
31
32
        BackendMenu::setContext('VojtaSvoboda.Brands', 'brands', 'brands');
33
34
        // update filters by GET parameter
35
        if ($id = Input::get('category')) {
36
            // get original filtering
37
            $widgetSession = Session::get('widget');
38
            $key = 'vojtasvoboda_brands-Brands-Filter-listFilter';
39
40
            // create new filter
41
            $filter['scope-category'] = [
0 ignored issues
show
Coding Style Comprehensibility introduced by
$filter was never initialized. Although not strictly required by PHP, it is generally a good practice to add $filter = array(); before regardless.

Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code.

Let’s take a look at an example:

foreach ($collection as $item) {
    $myArray['foo'] = $item->getFoo();

    if ($item->hasBar()) {
        $myArray['bar'] = $item->getBar();
    }

    // do something with $myArray
}

As you can see in this example, the array $myArray is initialized the first time when the foreach loop is entered. You can also see that the value of the bar key is only written conditionally; thus, its value might result from a previous iteration.

This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop.

Loading history...
42
                $id => Category::find($id)->name,
43
            ];
44
45
            // save new filter
46
            $encoded = base64_encode(serialize($filter));
47
            $withoutFiltering = !isset($widgetSession[$key]);
48
            if ($withoutFiltering || $widgetSession[$key] !== $encoded) {
49
                $widgetSession[$key] = $encoded;
50
                Session::put('widget', $widgetSession);
51
            }
52
        }
53
    }
54
}
55