| 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: