この投稿の最後のコメントとして、次のように述べています。
これはどのサービス プロバイダでも簡単に実行できます (メソッド ベースの DI を使用できるため、ブートは最適な場所です)。
public function boot(\Illuminate\Contracts\Http\Kernel $kernel) {
$kernel->appendMiddleware('Sheepy85\L5Localization\Middleware\Localization'); // prependMiddleware works too.
}
これは、サービス プロバイダーからミドルウェアを注入するための Laravel コードです。
Lumen Frameworkから同じことを達成しようとしています。コードは次のとおりです。
<?php namespace Acme\Slz\Providers;
use Illuminate\Contracts\Http\Kernel;
use Illuminate\Support\ServiceProvider;
class SlzServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
* @param Kernel $kernel
* @return void
*/
public function boot(Kernel $kernel)
{
// push the serializer middleware to the stack
$kernel->pushMiddleware(Acme\Slz\Middleware\Serializer::class);
}
/**
* Register any application services.
* This service provider is a great spot to register your various container
* bindings with the application. As you can see, we are registering our
* @return void
*/
public function register()
{
}
}
しかし、これにより次のエラーが発生します。
lumen.ERROR: exception 'ErrorException' with message 'Argument 1 passed to Acme\Slz\Providers\SlzServiceProvider::boot() must be an instance of Illuminate\Contracts\Http\Kernel, none given
Lumen を使用して依存関係コンテナーを有効にするために、他に行うべきことはありますか?