Laravel Middleware 呼び出し順序ログ

Laravel の Middleware を2つ登録した場合に、リクエスト前後の処理がどのような順序で実行されるか確認するため、ログ出力してみた。  

そのメモ。  

<?php

namespace App\Http\Middleware;

use Closure;

class Middle1
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        logger("Middle1-before");
        $response = $next($request);
        logger("Middle1-after");
        return $response;
    }
}
<?php

namespace App\Http\Middleware;

use Closure;

class Middle2
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        logger("Middle2-before");
        $response = $next($request);
        logger("Middle2-after");
        return $response;
    }
}
<?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 = [
        \App\Http\Middleware\TrustProxies::class,
        \App\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        \App\Http\Middleware\Middle1::class,
        \App\Http\Middleware\Middle2::class,
    ];

// 以下、省略

laravel.log

[2021-09-28 14:30:22] local.DEBUG: Middle1-before  
[2021-09-28 14:30:22] local.DEBUG: Middle2-before  
[2021-09-28 14:30:22] local.DEBUG: Middle2-after  
[2021-09-28 14:30:22] local.DEBUG: Middle1-after  

以上