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

ManagesViewData::currentRoute()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
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