在Lumen中启用中间件(Laravel)

时间:2015-04-29 12:30:45

标签: php session laravel middleware lumen

我已经尝试了Lumen(基于Laravel 5的微型PHP框架)几个小时,而且我无法将中间件添加到我的项目中,这基本上意味着我无法使用会话或CSRF保护等功能。

我的 .env 看起来像这样:

APP_ENV=local
APP_DEBUG=true
APP_KEY=some32charslongkey

APP_LOCALE=en
APP_FALLBACK_LOCALE=en

DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=somedbname
DB_USERNAME=someusername
DB_PASSWORD=somepw

QUEUE_DRIVER=database
CACHE_DRIVER=memcached
SESSION_DRIVER=memcached

和我的 bootstrap / app.php 是这样的:

require_once __DIR__.'/../vendor/autoload.php';
Dotenv::load(__DIR__.'/../');

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

$app->withFacades();
$app->withEloquent();

$app->singleton(
    'Illuminate\Contracts\Debug\ExceptionHandler',
    'App\Exceptions\Handler'
);

$app->singleton(
    'Illuminate\Contracts\Console\Kernel',
    'App\Console\Kernel'
);

$app->middleware([
    // 'Illuminate\Cookie\Middleware\EncryptCookies',
    // 'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
    // 'Illuminate\Session\Middleware\StartSession',
    // 'Illuminate\View\Middleware\ShareErrorsFromSession',
    // 'Laravel\Lumen\Http\Middleware\VerifyCsrfToken',
]);

require __DIR__.'/../app/Http/routes.php';
return $app;

只要我取消注释$ app->中间件([...])中的行;该应用程序不会在任何路线上显示任何内容。 我是.env配置的新手,也许我只是忘了添加一些东西,但我似乎无法解决这个问题。

1 个答案:

答案 0 :(得分:3)

因为您已经启用了会话中间件Lumen现在正在尝试使用memcached作为您当前在.env文件中设置的内容,如果您将其更改为文件应该可以正常工作。