国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

如何實(shí)現(xiàn)真正的全局中間件

ziyoren

問(wèn)題描述

期望通過(guò)一個(gè)全局中間件在響應(yīng)的header里添加服務(wù)節(jié)點(diǎn)信息,但某些情況下并未執(zhí)行全局中間件。

項(xiàng)目相關(guān)文件如下:

自定義中間件

<?php
namespace app\middleware;

use Webman\MiddlewareInterface;
use Webman\Http\Response;
use Webman\Http\Request;

class AllinMiddleware implements MiddlewareInterface
{
    public function process(Request $request, callable $handler) : Response
    {
        $response = $handler($request);
        $response->withHeaders([
            'Via' => config('app.name', 'ziyo.bot') . '/' . config('app.version', '1.0.0'),
        ]);
        return $response;
    }
}

啟用自定義中間件 config\middleware.php

<?php

return [
    '' => [
        app\middleware\AllinMiddleware::class,
    ]
];

路由配置文件 config\route.php

<?php

use Webman\Route;
use Webman\Http\Response;

// 被定義的路由會(huì)執(zhí)行全局中間件
Route::get('/', function () {
    return 'Hello Webman!';
});

// 這里的請(qǐng)求未執(zhí)行中間件
Route::fallback(function(){
    $data = ['code' => 404, 'msg' => '404 not found'];
    $options = JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES;
    return new Response(404, ['Content-Type' => 'application/json'], json_encode($data, $options));
});

Route::disableDefaultRoute();

為此你搜索到了哪些方案及不適用的原因

Route::fallback 是否可以指定一下中間件,或執(zhí)行全局中間件

868 1 0
1個(gè)回答

walkor 打賞

正常情況下404請(qǐng)求就不應(yīng)該被業(yè)務(wù)感知,因?yàn)樵L問(wèn)不存在的地址。404請(qǐng)求也不應(yīng)該走中間件,因?yàn)橹虚g件預(yù)期都是處理正常的請(qǐng)求,404弄進(jìn)來(lái)可能會(huì)導(dǎo)致業(yè)務(wù)異常。

  • ziyoren 2024-07-05

    可以理解。

    就目前的需求,我在中間件里寫(xiě)了個(gè)靜態(tài)方法,在404里調(diào)用一下,也能實(shí)現(xiàn)。

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??