Laravel10でLiteSpeed Cache for Laravel(LSCache)を使う方法

はるか
はるか
Laravelは、多くの開発者に支持されているPHPフレームワーク。キャッシュ機能の活用が重要。
ふゅか
ふゅか
今回はLiteSpeed CacheをLaravelで使う方法を説明するわね!これでアプリケーションがもっと速くなるわ!

1. LaravelとLiteSpeed Cache

Laravelは、多くの開発者に支持されているPHPフレームワークです。その高いパフォーマンスと柔軟性を活かすためには、キャッシュ機能の活用が欠かせません。今回は、LiteSpeed CacheをLaravelで利用する方法について説明します。

1.1. LiteSpeed Cacheとは

LiteSpeed Cacheは、高速なページキャッシュやオブジェクトキャッシュを提供するツールです。LiteSpeedベースのウェブサーバーであるLiteSpeedと連携することで、そのパフォーマンスを最大限に引き出すことができます。

ふゅか
ふゅか
LiteSpeed Cacheは、高速なページキャッシュやオブジェクトキャッシュを提供するツールよ。LiteSpeedサーバーと連携することで、そのパフォーマンスを最大限に引き出せるわ!

はるか
はるか
サーバーがLiteSpeedの場合、一緒に使うと効果的。

2. 事前準備

2.1. Laravelプロジェクトの作成

既存のLaravelプロジェクトがない場合は、新規にプロジェクトを作成します。

composer create-project laravel/laravel myproject

2.2. LiteSpeed Cacheのインストール

LaravelでLiteSpeed Cacheを利用するには、まずパッケージをインストールします。

composer require litespeed/lscache-laravel

2.3. 設定ファイルのpublish

インストールが完了したら、設定ファイルを公開します。

php artisan vendor:publish --provider="Litespeed\LSCache\LSCacheServiceProvider"

これにより、config/lscache.phpが生成されます。このファイルでLiteSpeed Cacheの設定を行います。

2.4. CacheLookupの有効化

CacheLookupを有効にするために、.htaccessなどで次のようにコードを書いてください。

<IfModule LiteSpeed>
CacheLookup on
</IfModule>

3. キャッシュの使い方

3.1. ルートごとのキャッシュ制御(web.phpを編集)

ルートごとにキャッシュを制御することができます。例えば、特定のルートをmiddlewareでキャッシュする場合は以下のようにします。(web.phpを編集)


Route::get('/', function () {
    return view('welcome');
})->middleware('lscache:max-age=300;public');;

また、キャッシュを無効にする場合は以下のように設定します。

Route::get('/no-cache', function () {
    return view('nocache');
})->middleware('lscache:no-cache');

viewでnocacheを指定しているため、nocache.blade.phpを作る必要があります。一応、適当に作ったファイルを用意しておきます。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>No Cache</title>
</head>
<body>

3.2. キャッシュクリアコマンドを作成する

キャッシュをパージ(削除)するために、次のコマンドを作成します。

php artisan lscache:clear

3.2.1. コマンドの作成

コマンドを作成するために次のコマンドを実行してください。

php artisan make:command lscacheClear

3.2.2. コマンドの中身

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

use LSCache;

class lscacheClear extends Command
{

   protected $signature = 'lscache:clear';

   protected $description = 'lscache purge';

   public function handle()
   {
       LSCache::purge('*');
       $this->info($this->description." success");
   }
}
はるか
はるか
コードを追加。LSCache::purge(‘*’);で全てのキャッシュを削除。

3.2.3. 実行結果

3.2.4. lscache:clearコマンドの説明

こちらのコードは、Laravelフレームワークにおけるカスタムコンソールコマンドの定義です。具体的な部分を箇条書きで説明します:

  1. 名前空間の定義
    namespace App\Console\Commands;
    • App\Console\Commands 名前空間に属するクラスであることを示しています。
  2. クラスの定義
    use Illuminate\Console\Command;
    use LSCache;
    
    class lscacheClear extends Command
    • lscacheClear クラスは Illuminate\Console\Command を継承しています。これにより、Laravelのコンソールコマンドとして機能します。
  3. コマンドシグネチャの定義
    protected $signature = 'lscache:clear';
    • このコマンドが php artisan lscache:clear として実行されることを指定しています。
  4. コマンドの説明
    protected $description = 'lscache purge';
    • このコマンドの簡単な説明を提供します。php artisan list コマンドで表示されます。
  5. ハンドルメソッドの定義
    public function handle()
    {
        LSCache::purge('*');
        $this->info($this->description." success");
    }
    • handle メソッド内で実際のコマンド処理を行います。
    • LSCache::purge('*'); により、LSCacheのキャッシュを全て削除します。
    • キャッシュ削除が成功した旨をコンソールに出力します($this->info($this->description." success");)。

3.3. LiteSpeed Cache for Laravelのmiddlewareのオプション

3.3.1. Public

publicは、キャッシュされたコンテンツをすべてのユーザーに提供できる設定です。ユーザー固有のデータに基づかないコンテンツに適しています。

3.3.2. Private

privateは、キャッシュをユーザー固有のデータとして設定し、そのユーザーにのみ提供します。ユーザーごとの異なるレスポンスが必要な場合に適しています。

3.3.3. Max-Age

max-ageは、レスポンスが新鮮とみなされる時間を秒単位で定義します。例えば、max-age=300はレスポンスを5分間キャッシュすることを意味します。

ふゅか
ふゅか
max-ageは、キャッシュの有効期間を秒単位で設定するのよ。例えば、lscache:max-age=600なら10分間♪

3.3.4. ESI (Edge Side Includes)

ESIは、キャッシュされたページ内に動的コンテンツを埋め込む機能です。esi=onを設定することで、<esi:include>タグを使って静的ページ内に動的な部分を含めることができます。

はるか
はるか
動的な部分を含めることが可能。

3.3.5. Purge

Purge機能は、キャッシュされたコンテンツの無効化を行います。特定のURL、タグ、または全キャッシュをLSCache::purgeメソッドを使ってパージできます。

ふゅか
ふゅか
キャッシュの無効化には、LSCache::purgeメソッドを使って特定のURLやタグをパージできるのよ。

3.4. まとめ

これで、LaravelプロジェクトでLiteSpeed Cacheを利用するための基本的な設定は完了です。LiteSpeed Cacheを活用することで、アプリケーションのパフォーマンスを大幅に向上させることができます。
LiteSpeed Cacheを使いこなして、さらに高速で効率的なLaravelアプリケーションを構築しましょう。

PR