最后就是分发事件,修改 app/Http/Middleware/BrowseLog.php 中间件的代码,修改后如下
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// 使用事件/监听器入库
event(new UserBrowse($request->getClientIp(), $request->path(), get_city_by_ip(false, 'null')));
return $next($request);
}
测试之后是没有问题的。
结语
这次所做的修改,感官上来看,就是将入库操作从中间件转移到监听器中,实际上的意义远不止于此。例如同一个事件,可以分发在不同的地方;事件添加了需求,只需要在添加一个监听器即可;监听器中也可以使用队列等等。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持黑区网络。
