Lumen - промежуточное ПО, зарегистрированное как синглтон, не является синглтоном - PullRequest
0 голосов
/ 06 августа 2020

Ожидаемое поведение: каждый ответ имеет заголовок X-Cont с увеличенным числом:

  • 1-й заголовок запроса / ответа X-Cont равен 1
  • 2-й заголовок запроса / ответа X-Cont - 2
  • 99-й заголовок запроса / ответа X-Cont - 99

Вот мое промежуточное ПО:

namespace App\Http\Middleware;

class MyMiddleware {

    private $cont = 0;

    public function handle($request, Closure $next) {
        $response = $next($request);
        $this->cont++;
        $response->header('X-Cont', $this->cont);
        return $response;
    }
}

Я зарегистрировал свое промежуточное ПО в моем поставщик службы приложений:

use App\Http\Middleware\MyMiddleware;

class AppServiceProvider extends ServiceProvider{

    public function register(){
        $this->app->singleton(MyMiddleware::class, function ($app) {
            return new MyMiddleware();
        });
    }
}

И включил промежуточное ПО и поставщика услуг в bootstrap/app.php

...
$app->middleware([
    App\Http\Middleware\MyMiddleware::class
]);
...
$app->register(App\Providers\AppServiceProvider::class);

Но все запросы / ответы имеют заголовок X-Cont 1. Если это промежуточное ПО одноэлементный класс должен увеличивать $cont переменную.

Что мне здесь не хватает?

...