为什么在Lumen 5.3中从不触发router.matched事件?

时间:2016-10-09 15:40:19

标签: php lumen

public function boot()
{
    $this->app['events']->listen('router.matched', function () {
        $this->app->resolving(function (FormRequest $request, $app) {
            $this->initializeRequest($request, $app['request']);

            $request->setContainer($app)
                ->setRedirector($app['Laravel\Lumen\Http\Redirector']);
        });
    });
}

这是我在bootstrap/app.php注册的自定义服务提供商中的启动方法。我使用Lumen 5.3框架。

1 个答案:

答案 0 :(得分:1)

Lumen使用与Laravel不同的路由器。 Lumen使用nikic/fast-route包作为路由器,而Laravel使用illuminate/routing包。只有当路由匹配时,只有完整的Laravel路由器才会触发。

作为旁注,发起的事件是router.matched到5.1。在5.2中,路由器已更新为触发Events\RouteMatched事件对象。但是,Lumen使用的路由器不会触发任何事件。