Passed
Push — task/laravel-breadcrumbs ( 66ddec )
by Yonathan
12:47
created

BreadcrumbsComposer::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
namespace App\Http\ViewComposers;
4
5
use Facades\App\Services\WhichPortal;
6
use Illuminate\View\View;
7
use Illuminate\Http\Request;
8
use Illuminate\Support\Facades\Lang;
9
use Illuminate\Support\Facades\Log;
10
11
class BreadcrumbsComposer
12
{
13
    /**
14
     * The request instance.
15
     *
16
     * @var \Illuminate\Http\Request
17
     */
18
    protected $request;
19
20
    /**
21
     * Initialize a new composer instance.
22
     *
23
     * @param  \Illuminate\Http\Request  $request
2 ignored issues
show
Coding Style Documentation introduced by
Missing parameter comment
Loading history...
Coding Style introduced by
Expected 1 spaces after parameter type; 2 found
Loading history...
24
     * @return void
25
     */
26
    public function __construct(Request $request)
27
    {
28
        $this->request = $request;
29
    }
30
31
    /**
32
     * Bind data to the view.
33
     *
34
     * @param  \Illuminate\View\View  $view
2 ignored issues
show
Coding Style Documentation introduced by
Missing parameter comment
Loading history...
Coding Style introduced by
Expected 1 spaces after parameter type; 2 found
Loading history...
35
     * @return void
36
     */
37
    public function compose(View $view)
38
    {
39
        $segments = $this->parseSegments();
40
        $breadcrumbs_lang = Lang::get('common/breadcrumbs')['applicant'];
41
42
        if (WhichPortal::isManagerPortal()) {
43
            $segments = $segments->slice(1);
44
            $breadcrumbs_lang = Lang::get('common/breadcrumbs')['manager'];
45
        }
46
47
        $view->with('breadcrumbs', $segments);
48
        $view->with('breadcrumbs_lang', $breadcrumbs_lang);
49
    }
50
51
    /**
52
     * Parse the request route segments.
53
     *
54
     * @return \Illuminate\Support\Collection
55
     */
56
    protected function parseSegments()
57
    {
58
        return collect($this->request->segments())->mapWithKeys(function ($segment, $key) {
59
            return [
60
                $segment => implode('/', array_slice($this->request->segments(), 0, $key + 1)),
61
            ];
62
        });
63
    }
64
}
65