RouteMacros::registerWidget()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 5
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 7
rs 10
1
<?php
2
3
namespace Imanghafoori\Widgets;
4
5
use Illuminate\Support\Facades\Route;
6
7
class RouteMacros
8
{
9
    public function registerMacros()
10
    {
11
        $this->registerWidget();
12
13
        $this->registerJsonWidget();
14
    }
15
16
    private function registerWidget(): void
17
    {
18
        Route::macro('widget', function ($url, $widget, $name = null) {
19
            return Route::get($url, [
20
                'as' => $name,
21
                'uses' => function (...$args) use ($widget) {
22
                    return render_widget($widget, $args);
23
                },
24
            ]);
25
        });
26
    }
27
28
    private function registerJsonWidget(): void
29
    {
30
        Route::macro('jsonWidget', function ($url, $widget, $name = null) {
31
            return Route::get($url, [
32
                'as' => $name,
33
                'uses' => function (...$args) use ($widget) {
34
                    return json_widget($widget, $args);
35
                },
36
            ]);
37
        });
38
    }
39
}
40