/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $ignore = ['222.20.35.168', '127.0.0.1']; if (array_search($request->ip(), $ignore) === false) { $ip = $request->ip(); $path = $request->path(); $view = new View(); $view->ip = $ip; $view->url = $path; $view->location = GeoipParser::parse($ip); $view->save(); } return $next($request); }
public function log() { if ((new CrawlerDetect())->isCrawler()) { return; } if (is_object(Auth::user())) { return; } if (!Session::has('views')) { Session::put('views', []); $this->logReferer(); } $slugs = Cache::get('post_slugs'); $path = (new UrlParser(Request::url()))->path; if (is_null($slugs)) { $slugs = []; } if (!in_array(substr($path, 1), $slugs)) { return; } $views = Session::get('views'); if (is_null($path)) { $path = '/'; } if (in_array($path, $views)) { return; } $views[] = $path; Session::put('views', $views); $view = View::where('path', $path)->first(); if (is_null($view)) { $view = new View(); $view->count = 0; } $view->path = $path; $view->count++; $view->save(); }