Laravel ist eines der von PHP-Entwicklern am häufigsten verwendeten Frameworks mit leistungsstarken Funktionen und flexibler Konfiguration. Wenn wir eine Laravel-basierte Anwendung erstellen, müssen wir manchmal einige statische Seiten zwischenspeichern, um die Leistung der Website zu verbessern.
In diesem Artikel zeigen wir, wie Sie die Caching-Funktion von Laravel verwenden, um statische Seiten zwischenzuspeichern und so die Leistung und Reaktionszeit Ihrer Anwendung zu verbessern. Wir werden versuchen, diese Aufgabe in zwei Schritten zu erledigen: Zuerst konfigurieren wir den Cache-Treiber von Laravel und dann erstellen wir eine Middleware zum Zwischenspeichern statischer Seiten.
1. Cache-Treiber konfigurieren
Laravel unterstützt eine Vielzahl von Cache-Treibern, wie Redis, Memcached, APC und Datei-Cache. Wir können je nach Situation den für uns passenden Cache-Treiber auswählen. In diesem Beispiel verwenden wir den Datei-Cache-Treiber, um statische Seiten zwischenzuspeichern.
Zuerst müssen wir in der Konfigurationsdatei config/cache.php den Standard-Cache-Treiber in den Datei-Cache-Treiber ändern. Der Code lautet wie folgt:
'default' => env('CACHE_DRIVER', 'file'),
Als nächstes müssen wir in der Konfigurationsdatei config/cache.php brauchen Geben Sie den Speicherpfad der Cache-Datei an. Der Code lautet wie folgt:
'path' => storage_path('framework/cache/data'),
Nachdem wir nun den Cache-Treiber von Laravel konfiguriert haben, können wir mit dem Aufbau einer Middleware zum Zwischenspeichern statischer Seiten beginnen.
2. Middleware für das Caching von Seiten erstellen
In Laravel ist Middleware ein wichtiger Bestandteil der Verarbeitung von HTTP-Anfragen. Wir können Middleware verwenden, um Anfragen zu filtern, Header-Informationen hinzuzufügen, Cookies zu setzen und mehr. In diesem Beispiel erstellen wir eine Middleware zum Zwischenspeichern statischer Seiten.
Zuerst müssen wir eine Middleware namens „CachePage“ zum Zwischenspeichern statischer Seiten erstellen. Wir können den folgenden Befehl verwenden, um neue Middleware zu generieren:
php artisan make:middleware CachePage
Wenn wir den obigen Befehl ausführen, erstellt Laravel automatisch eine Datei mit dem Namen „CachePage.php“ und legt sie im Verzeichnis app/Http/Middleware ab. Öffnen Sie die Datei und fügen Sie den folgenden Code in die Handle-Methode ein:
public function handle($request, Closure $next) { // 检查此请求是否可以缓存 if (! $this->shouldCache($request)) { return $next($request); } // 获取此请求的缓存键 $key = $this->getCacheKey($request); // 尝试从缓存中获取此请求的页面 if (Cache::has($key)) { return response(Cache::get($key)); } // 如果没有从缓存中获取到,那么就处理请求并将结果缓存下来 $response = $next($request); if ($this->shouldCacheResponse($response)) { Cache::put($key, $response->getContent(), $this->getCacheLifetime()); } return $response; } // 检查此请求是否可以缓存 protected function shouldCache($request) { if (!$request->isMethod('get')) { return false; } if ($request->query->count()) { return false; } if (auth()->check()) { return false; } if (config('app.env') === 'local') { return false; } return true; } // 获取此请求的缓存键 protected function getCacheKey($request) { return 'cache:' . $request->url(); } // 检查此请求的响应是否可以缓存 protected function shouldCacheResponse($response) { return $response->status() === 200; } // 获取页面缓存的生存时间 protected function getCacheLifetime() { return config('cache.page_cache_lifetime'); }
Lassen Sie uns nun den obigen Code Schritt für Schritt erklären:
Jetzt registrieren Sie diese Middleware in der Datei Kernel.php. Wir fügen seinen Registrierungscode zum $routeMiddleware-Array hinzu. Der Code lautet wie folgt:
'cache.page' => \App\Http\Middleware\CachePage::class,
Sobald unsere Anwendung eine Route verarbeitet, die mit der CachePage-Middleware übereinstimmt, speichert die Middleware die Verarbeitungsergebnisse zwischen und speichert sie im Dateisystem. Wenn die nächste Anfrage eintrifft, ruft die Middleware die Seite aus dem Cache ab und gibt die Ergebnisse schnell zurück.
Zusammenfassung
In diesem Artikel haben wir gezeigt, wie man statische Seiten mithilfe der Caching-Funktionalität von Laravel zwischenspeichert. Wir haben zunächst den Cache-Treiber von Laravel konfiguriert und dann eine Middleware zum Zwischenspeichern statischer Seiten erstellt. Während des gesamten Prozesses konzentrieren wir uns auf einige Best Practices und Anwendungsfälle aus der Praxis, um Ihnen zu zeigen, wie Sie Ihre Anwendung optimieren können, um eine optimale Leistung und Reaktionszeit sicherzustellen.
Das obige ist der detaillierte Inhalt vonSo zwischenspeichern Sie statische Seiten in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!