Laravel PHP:自定义中间件目录问题


Laravel PHP : Issue with Custom Middleware Directory

为了用中间件组织我的源代码,我想把我所有的身份验证中间件都放在我创建的/App/Http/middleware/auth文件夹中。作为测试,我在auth foler中创建了auth_none.php。

<?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);
}
}

这是我的auth_none.php

还有我的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
];
}

这是我在页面上看到的错误。

    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

您的命名空间中有一个拼写错误。

更改

namespace App'Httpd'Middleware;

namespace App'Http'Middleware'Auth;

在access_none类中。

进一步阅读:PSR-0代表什么?