RouteMacros   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
c 1
b 0
f 0
dl 0
loc 28
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A registerJsonWidget() 0 7 1
A registerMacros() 0 5 1
A registerWidget() 0 7 1
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