Conditions | 5 |
Paths | 2 |
Total Lines | 105 |
Code Lines | 77 |
Lines | 0 |
Ratio | 0 % |
Changes | 2 | ||
Bugs | 0 | Features | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
18 | public function handle($request, Closure $next) |
||
19 | { |
||
20 | if (auth()->check() && $request->is(admin_prefix() . '*')) { |
||
|
|||
21 | Menu::make('admin', function (Builder $menu) { |
||
22 | $menu->add('Dashboard', route('administrator.index'))->icon('home'); |
||
23 | |||
24 | $navs = app('navigation')->getPublished(); |
||
25 | if ($navs->count()) { |
||
26 | $nav = $menu->add('Navigation', '#')->icon('sitemap') |
||
27 | ->data('permission', 'navigation.view'); |
||
28 | $nav->add('Manage', route('administrator.navigation.index')) |
||
29 | ->icon('cogs') |
||
30 | ->data([ |
||
31 | 'permission' => 'navigation.view', |
||
32 | 'append' => route('administrator.navigation.create'), |
||
33 | ]); |
||
34 | $navs->each(function ($item) use ($nav) { |
||
35 | $nav->add($item->title, route('administrator.navigation.menu.index', $item->id)) |
||
36 | ->icon('link') |
||
37 | ->data([ |
||
38 | 'permission' => 'navigation.view', |
||
39 | 'append' => route('administrator.navigation.menu.create', $item->id), |
||
40 | ]); |
||
41 | }); |
||
42 | } else { |
||
43 | $menu->add('Navigation', route('administrator.navigation.index'))->icon('link') |
||
44 | ->data(['permission' => 'navigation.view']); |
||
45 | } |
||
46 | |||
47 | $contents = $menu->add('Contents', '#')->icon('files-o'); |
||
48 | $contents->add('Articles', route('administrator.articles.index')) |
||
49 | ->icon('files-o') |
||
50 | ->data([ |
||
51 | 'permission' => 'article.view', |
||
52 | 'append' => route('administrator.articles.create'), |
||
53 | ]); |
||
54 | $contents->add('Categories', route('administrator.categories.index')) |
||
55 | ->icon('file-text') |
||
56 | ->data([ |
||
57 | 'permission' => 'category.view', |
||
58 | 'append' => route('administrator.categories.create'), |
||
59 | ]); |
||
60 | $contents->add('Widgets', route('administrator.widgets.index'))->icon('plug') |
||
61 | ->data([ |
||
62 | 'permission' => 'widget.view', |
||
63 | 'append' => route('administrator.widgets.create'), |
||
64 | ]); |
||
65 | $contents->add('Media', route('administrator.media.index'))->icon('image') |
||
66 | ->data('permission', 'media.view'); |
||
67 | |||
68 | $modules = $menu->add('Modules', '#')->icon('cubes')->data('permission', 'module.view'); |
||
69 | $modules->add('Manage', route('administrator.modules.index'))->icon('cogs')->data('permission', 'module.view'); |
||
70 | event('admin.menu.build', $modules); |
||
71 | |||
72 | $menu->add('Themes', route('administrator.themes.index')) |
||
73 | ->icon('windows') |
||
74 | ->data(['permission' => 'theme.view']); |
||
75 | |||
76 | $users = $menu->add('Users', '#')->icon('key') |
||
77 | ->data([ |
||
78 | 'permission' => ['user.view', 'role.view', 'permission.view'] |
||
79 | ]); |
||
80 | $users->add('Manage', route('administrator.users.index'))->icon('users') |
||
81 | ->data([ |
||
82 | 'permission' => 'user.view', |
||
83 | 'append' => route('administrator.users.create'), |
||
84 | ]); |
||
85 | $users->add('Roles', route('administrator.roles.index'))->icon('shield') |
||
86 | ->data([ |
||
87 | 'permission' => 'role.view', |
||
88 | 'append' => route('administrator.roles.create'), |
||
89 | ]); |
||
90 | $users->add('Permissions', route('administrator.permissions.index'))->icon('tag') |
||
91 | ->data([ |
||
92 | 'permission' => 'permission.view', |
||
93 | 'append' => route('administrator.permissions.create'), |
||
94 | ]); |
||
95 | |||
96 | $config = $menu->add('Configurations', '#')->icon('gears') |
||
97 | ->data([ |
||
98 | 'permission' => ['extension.view', 'utilities.config'] |
||
99 | ]); |
||
100 | $config->add('Extensions', route('administrator.extension.index'))->icon('plug') |
||
101 | ->data('permission', 'extension.view'); |
||
102 | $config->add('Global', route('administrator.configuration.index'))->icon('globe') |
||
103 | ->data('permission', 'utilities.config'); |
||
104 | |||
105 | $menu->add('Utilities', route('administrator.utilities.index'))->icon('wrench') |
||
106 | ->data('permission', 'utilities.view'); |
||
107 | |||
108 | $menu->add('Logout', route('administrator.logout'))->icon('power-off')->attribute(['name' => 'logout']); |
||
109 | })->filter(function ($item) { |
||
110 | $permissions = (array) $item->data('permission'); |
||
111 | if (! $permissions) { |
||
112 | return true; |
||
113 | } |
||
114 | |||
115 | return current_user()->canAtLeast($permissions); |
||
116 | }); |
||
117 | } |
||
118 | |||
119 | $response = $next($request); |
||
120 | |||
121 | return $response; |
||
122 | } |
||
123 | } |
||
124 |
It seems like the method you are trying to call exists only in some of the possible types.
Let’s take a look at an example:
Available Fixes
Add an additional type-check:
Only allow a single type to be passed if the variable comes from a parameter: