| Conditions | 12 | 
| Paths | 256 | 
| Total Lines | 79 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 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 | ||
| 100 | public function boot(Router $router): void | ||
| 101 |     { | ||
| 102 | // Attach request macro | ||
| 103 | $this->attachRequestMacro(); | ||
| 104 | |||
| 105 | // Map bouncer models | ||
| 106 |         Bouncer::useRoleModel(config('cortex.auth.models.role')); | ||
| 107 |         Bouncer::useAbilityModel(config('cortex.auth.models.ability')); | ||
| 108 | |||
| 109 | // Map bouncer tables (users, roles, abilities tables are set through their models) | ||
| 110 | Bouncer::tables([ | ||
| 111 |             'permissions' => config('cortex.auth.tables.permissions'), | ||
| 112 |             'assigned_roles' => config('cortex.auth.tables.assigned_roles'), | ||
| 113 | ]); | ||
| 114 | |||
| 115 | // Bind route models and constrains | ||
| 116 |         $router->pattern('role', '[a-zA-Z0-9-]+'); | ||
| 117 |         $router->pattern('ability', '[a-zA-Z0-9-]+'); | ||
| 118 |         $router->pattern('session', '[a-zA-Z0-9-]+'); | ||
| 119 |         $router->pattern('admin', '[a-zA-Z0-9-]+'); | ||
| 120 |         $router->pattern('member', '[a-zA-Z0-9-]+'); | ||
| 121 |         $router->pattern('manager', '[a-zA-Z0-9-]+'); | ||
| 122 |         $router->model('role', config('cortex.auth.models.role')); | ||
| 123 |         $router->model('admin', config('cortex.auth.models.admin')); | ||
| 124 |         $router->model('member', config('cortex.auth.models.member')); | ||
| 125 |         $router->model('manager', config('cortex.auth.models.manager')); | ||
| 126 |         $router->model('guardian', config('cortex.auth.models.guardian')); | ||
| 127 |         $router->model('ability', config('cortex.auth.models.ability')); | ||
| 128 |         $router->model('session', config('cortex.auth.models.session')); | ||
| 129 | |||
| 130 | // Map relations | ||
| 131 | Relation::morphMap([ | ||
| 132 |             'role' => config('cortex.auth.models.role'), | ||
| 133 |             'admin' => config('cortex.auth.models.admin'), | ||
| 134 |             'member' => config('cortex.auth.models.member'), | ||
| 135 |             'manager' => config('cortex.auth.models.manager'), | ||
| 136 |             'guardian' => config('cortex.auth.models.guardian'), | ||
| 137 |             'ability' => config('cortex.auth.models.ability'), | ||
| 138 | ]); | ||
| 139 | |||
| 140 | // Load resources | ||
| 141 | $this->loadRoutesFrom(__DIR__.'/../../routes/web/adminarea.php'); | ||
| 142 | $this->loadRoutesFrom(__DIR__.'/../../routes/web/frontarea.php'); | ||
| 143 | $this->loadRoutesFrom(__DIR__.'/../../routes/web/managerarea.php'); | ||
| 144 | $this->loadRoutesFrom(__DIR__.'/../../routes/web/tenantarea.php'); | ||
| 145 | $this->loadViewsFrom(__DIR__.'/../../resources/views', 'cortex/auth'); | ||
| 146 | $this->loadTranslationsFrom(__DIR__.'/../../resources/lang', 'cortex/auth'); | ||
| 147 |         $this->app->runningInConsole() || $this->app->afterResolving('blade.compiler', function () { | ||
| 148 |             $accessarea = $this->app['request']->route('accessarea'); | ||
| 149 |             ! file_exists($menus = __DIR__."/../../routes/menus/{$accessarea}.php") || require $menus; | ||
| 150 |             ! file_exists($breadcrumbs = __DIR__."/../../routes/breadcrumbs/{$accessarea}.php") || require $breadcrumbs; | ||
| 151 | }); | ||
| 152 | |||
| 153 | // Publish Resources | ||
| 154 |         ! $this->app->runningInConsole() || $this->publishesLang('cortex/auth', true); | ||
| 155 |         ! $this->app->runningInConsole() || $this->publishesViews('cortex/auth', true); | ||
| 156 |         ! $this->app->runningInConsole() || $this->publishesConfig('cortex/auth', true); | ||
| 157 |         ! $this->app->runningInConsole() || $this->publishesMigrations('cortex/auth', true); | ||
| 158 | |||
| 159 | // Register event handlers | ||
| 160 | $this->app['events']->subscribe(GenericHandler::class); | ||
| 161 | |||
| 162 | // Register attributes entities | ||
| 163 |         ! app()->bound('rinvex.attributes.entities') || app('rinvex.attributes.entities')->push('admin'); | ||
| 164 |         ! app()->bound('rinvex.attributes.entities') || app('rinvex.attributes.entities')->push('member'); | ||
| 165 |         ! app()->bound('rinvex.attributes.entities') || app('rinvex.attributes.entities')->push('manager'); | ||
| 166 | |||
| 167 | // Override middlware | ||
| 168 | $this->overrideMiddleware($router); | ||
| 169 | |||
| 170 | // Register menus | ||
| 171 | $this->registerMenus(); | ||
| 172 | |||
| 173 | // Share current user instance with all views | ||
| 174 |         $this->app['view']->composer('*', function ($view) { | ||
| 175 |             ! config('rinvex.tenants.active') || $view->with('currentTenant', config('rinvex.tenants.active')); | ||
| 176 |             $view->with('currentUser', auth()->guard(request()->route('guard'))->user()); | ||
|  | |||
| 177 | }); | ||
| 178 | } | ||
| 179 | |||
| 222 | 
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: