Laravel は、PHP 開発者に最も広く使用されているフレームワークの 1 つで、強力な機能と柔軟な構成を備えています。 Laravel ベースのアプリケーションを構築するとき、Web サイトのパフォーマンスを向上させるためにいくつかの静的ページをキャッシュする必要がある場合があります。
この記事では、Laravel のキャッシュ機能を使用して静的ページをキャッシュし、それによってアプリケーションのパフォーマンスと応答時間を向上させる方法を説明します。このタスクは 2 つのステップで達成しようとします。まず、Laravel のキャッシュ ドライバーを構成し、次に静的ページをキャッシュするミドルウェアを作成します。
1. キャッシュドライバーの設定
Laravel は、Redis、Memcached、APC、ファイル キャッシュなど、さまざまなキャッシュ ドライバーをサポートしています。特定の状況に基づいて、適切なキャッシュ ドライバーを選択できます。この例では、ファイル キャッシュ ドライバーを使用して静的ページをキャッシュします。
まず、config/cache.php 構成ファイルで、デフォルトのキャッシュ ドライバーをファイル キャッシュ ドライバーに変更する必要があります。コードは次のとおりです:
'default' => env('CACHE_DRIVER', 'file'),
次に、構成ファイルで/cache .php 構成ファイルで、キャッシュ ファイルのストレージ パスを指定する必要があります。コードは次のとおりです:
'path' => storage_path('framework/cache/data'),
Laravel のキャッシュ ドライバーを構成したので、ミドルウェアの構築を開始できます。静的ページをキャッシュします。
2. ページをキャッシュするためのミドルウェアを作成する
Laravel では、ミドルウェアは HTTP リクエストの処理の重要な部分です。ミドルウェアを使用して、リクエストのフィルタリング、ヘッダー情報の追加、Cookie の設定などを行うことができます。この例では、静的ページをキャッシュするミドルウェアを作成します。
まず、静的ページをキャッシュするための「CachePage」というミドルウェアを作成する必要があります。次のコマンドを使用して新しいミドルウェアを生成できます:
php artisan make:middleware CachePage
上記のコマンドを実行すると、Laravel は「CachePage.php」という名前のファイルを自動的に作成し、app/Http/Middleware ディレクトリの中央に配置します。ファイルを開き、ハンドル メソッドに次のコードを追加します。
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'); }
さて、上記のコードをステップごとに説明します。
次に、このミドルウェアを Kernel.php ファイルに登録します。その登録コードを $routeMiddleware 配列に追加します。コードは次のとおりです:
'cache.page' => \App\Http\Middleware\CachePage::class,
これで、アプリケーションが CachePage ミドルウェアと一致するルートを処理するたびに、ミドルウェアは処理結果をキャッシュし、それをファイルシステム。次のリクエストが来ると、ミドルウェアはキャッシュからページを取得し、結果をすぐに返します。
概要
この記事では、Laravel のキャッシュ機能を使用して静的ページをキャッシュする方法を説明しました。まずLaravelのキャッシュドライバーを設定し、次に静的ページをキャッシュするミドルウェアを作成しました。プロセス全体を通じて、いくつかのベスト プラクティスと実際の使用例に焦点を当て、アプリケーションを最適化して最適なパフォーマンスと応答時間を確保する方法を示します。
以上がLaravelで静的ページをキャッシュする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。