Passed
Push — master ( bd46f5...2a3d6b )
by Caen
03:03 queued 11s
created

ManagesViewData   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 5
Bugs 0 Features 0
Metric Value
eloc 6
c 5
b 0
f 0
dl 0
loc 32
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A shareViewData() 0 5 1
A currentRoute() 0 3 1
A currentPage() 0 3 1
1
<?php
2
3
namespace Hyde\Framework\Foundation\Concerns;
4
5
use Hyde\Framework\Concerns\HydePage;
6
use Hyde\Framework\Models\Route;
7
use Illuminate\Support\Facades\View;
8
9
/**
10
 * @internal Single-use trait for the HydeKernel class.
11
 *
12
 * @see \Hyde\Framework\HydeKernel
13
 */
14
trait ManagesViewData
15
{
16
    /**
17
     * Share data for the page being rendered.
18
     *
19
     * @param  \Hyde\Framework\Concerns\HydePage  $page
20
     */
21
    public function shareViewData(HydePage $page): void
22
    {
23
        View::share('page', $page);
24
        View::share('currentPage', $page->getRouteKey());
25
        View::share('currentRoute', $page->getRoute());
26
    }
27
28
    /**
29
     * Get the route key for the page being rendered.
30
     *
31
     * @return string|null
32
     */
33
    public function currentPage(): ?string
34
    {
35
        return View::shared('currentPage');
36
    }
37
38
    /**
39
     * Get the route for the page being rendered.
40
     *
41
     * @return \Hyde\Framework\Models\Route|null
42
     */
43
    public function currentRoute(): ?Route
44
    {
45
        return View::shared('currentRoute');
46
    }
47
}
48