Search code examples
phplaravelmiddleware

Laravel PHP : Issue with Custom Middleware Directory


For organizing my source with middleware I want to put all my auth middleware in the /App/Http/Middleware/Auth folder I created. As a test i made auth_none.php in the Auth foler.

<?php
namespace App\Httpd\Middleware\Auth;

use Closure;

class access_none {
protected $session;
protected $key;

public function __construct() {
    $this->session = $_COOKIE['session'];
    $this->key = $_COOKIE['key'];
}

public function handle($request, Closure $next) {
    return $next($request);
}
}

Thats my auth_none.php

And my Kernel.php

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
/**
 * The application's global HTTP middleware stack.
 *
 * These middleware are run during every request to your application.
 *
 * @var array
 */
protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class
];

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
    ],

    'api' => [
        'throttle:60,1',
    ],
];

/**
 * The application's route middleware.
 *
 * These middleware may be assigned to groups or used individually.
 *
 * @var array
 */
protected $routeMiddleware = [
    'https' => \App\Http\Middleware\Https::class,
    'auth.none' => \App\Http\Middleware\Auth\access_none::class
];
}

And here is the error I am getting on my page.

    ReflectionException in Container.php line 738:
Class App\Http\Middleware\Auth\access_none does not exist
in Container.php line 738
at ReflectionClass->__construct('App\Http\Middleware\Auth\access_none') in Container.php line 738
at Container->build('App\Http\Middleware\Auth\access_none', array()) in Container.php line 633
at Container->make('App\Http\Middleware\Auth\access_none', array()) in Application.php line 697
at Application->make('App\Http\Middleware\Auth\access_none') in Pipeline.php line 123
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Https.php line 9
at Https->handle(object(Request), object(Closure))
at call_user_func_array(array(object(Https), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Router.php line 726
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 699
at Router->dispatchToRoute(object(Request)) in Router.php line 675
at Router->dispatch(object(Request)) in Kernel.php line 246
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 132
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
at Kernel->handle(object(Request)) in index.php line 54

Solution

  • You have a typo in your namespace.

    change

    namespace App\Httpd\Middleware;
    

    to

    namespace App\Http\Middleware\Auth;
    

    in the access_none class.

    Further reading: What does PSR-0 stand for?