ホームページ >バックエンド開発 >PHPチュートリアル >CodeIgniter ミドルウェア: ページのキャッシュとアプリケーションの静的処理を高速化します。

CodeIgniter ミドルウェア: ページのキャッシュとアプリケーションの静的処理を高速化します。

王林
王林オリジナル
2023-07-30 21:41:18740ブラウズ

CodeIgniter ミドルウェア: ページ キャッシュとアプリケーションの静的処理を高速化する

はじめに:
アプリケーションを開発する場合、Web ページの読み込み速度の向上は重要な考慮事項です。ページ キャッシュと静的処理は、この目標を達成するための効果的な手段です。 CodeIgniterフレームワークは、ページキャッシュや静的処理を簡単に実装できるミドルウェア機能を提供し、アプリケーションの読み込み速度を高速化します。

1. ページ キャッシュ

ページ キャッシュは、動的に生成された Web ページ コンテンツをサーバー上にキャッシュし、後続のリクエストでキャッシュされたコンテンツを直接返すことで、ページを再生成するコストを回避します。 CodeIgniter フレームワークは組み込みのページ キャッシュ クラスを提供しており、ミドルウェアを通じてページ キャッシュ機能を簡単に実装できます。

1.1 設定ファイルのキャッシュ パスの設定
まず、設定ファイルにキャッシュ パスを設定する必要があります。 config/config.php ファイルを開き、次のコードを見つけます。

$config['cache_path'] = '';

Set $config['cache_path'] をキャッシュ パスに設定します。例:

$config['cache_path'] = APPPATH . 'cache/';

1.2 CacheMiddleware クラスの作成
次に、ページ キャッシュ機能を実装するための CacheMiddleware という名前のクラスを作成します。 app/Middleware ディレクトリを開き、CacheMiddleware.php という名前のファイルを作成し、次のコードをファイルにコピーします。

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class CacheMiddleware
{
    protected $CI;
    
    public function __construct()
    {
        $this->CI =& get_instance();
    }
    
    public function handle()
    {
        if ($this->CI->input->server('REQUEST_METHOD') == 'GET')
        {
            $this->CI->load->driver('cache', array('adapter' => 'file'));
            
            $cache_key = md5(uri_string());
            if ($this->CI->cache->get($cache_key))
            {
                echo $this->CI->cache->get($cache_key);
                exit();
            }
            else
            {
                ob_start();
            }
        }
    }
    
    public function terminate()
    {
        if ($this->CI->input->server('REQUEST_METHOD') == 'GET')
        {
            $output = ob_get_contents();
            ob_end_flush();
            
            $cache_key = md5(uri_string());
            $this->CI->cache->save($cache_key, $output, 3600);
        }
    }
}

1.3 Register Middleware
次にapp/Config/App.php ファイルを開き、次のコードを見つけます:

public $middleware = [];

要素を $middleware 配列と CacheMiddleware #に追加します。 ## クラスを配列に追加します。

public $middleware = [
    AppMiddlewareCacheMiddleware::class
];

1.4 ページ キャッシュのテスト

これで、ページ キャッシュの構成が完了しました。アプリを開き、ブラウザーでページにアクセスし、ページを更新します。ページのコンテンツがキャッシュされるため、2 回目の更新でページの読み込み速度が大幅に向上することがわかります。

2. 静的処理

静的処理では、動的に生成された Web ページのコンテンツを静的 HTML ファイルとして保存し、それをユーザーに直接返すため、動的生成の必要がなくなります。 CodeIgniter フレームワークは、静的処理を実現するための関連関数を提供します。

2.1 StaticMiddleware クラスの作成

次に、ページの静的処理を実装するために、
StaticMiddleware という名前のクラスを作成します。 app/Middleware ディレクトリを開き、StaticMiddleware.php という名前のファイルを作成し、次のコードをファイルにコピーします。

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class StaticMiddleware
{
    protected $CI;
    
    public function __construct()
    {
        $this->CI =& get_instance();
    }
    
    public function handle()
    {
        if ($this->CI->input->server('REQUEST_METHOD') == 'GET')
        {
            $file_path = APPPATH . 'static/' . uri_string() . '.html';
            if (file_exists($file_path))
            {
                echo file_get_contents($file_path);
                exit();
            }
            else
            {
                ob_start();
            }
        }
    }
    
    public function terminate()
    {
        if ($this->CI->input->server('REQUEST_METHOD') == 'GET')
        {
            $output = ob_get_contents();
            ob_end_flush();
            
            $file_path = APPPATH . 'static/' . uri_string() . '.html';
            file_put_contents($file_path, $output);
        }
    }
}

2.2 Register Middleware

次に
app/Config/App.php ファイルを開き、次のコードを見つけます:

public $middleware = [];

Add an element to the

$middleware array and StaticMiddleware クラスを配列に追加します:

public $middleware = [
    AppMiddlewareStaticMiddleware::class
];

2.3 静的処理のテスト

これで、静的処理の構成が完了しました。アプリを開き、ブラウザーでページにアクセスし、ページを更新します。現在の URL の名前が付けられた HTML ファイルが
app/static/ ディレクトリに保存されていることがわかります。ページのコンテンツは HTML ファイルから直接読み込まれ、動的に生成されたページよりも読み込み速度が速くなります。 。

結論:

ミドルウェアを介してページ キャッシュと静的処理を実装すると、アプリケーションの読み込み速度が大幅に向上します。 CodeIgniter フレームワークでは、ミドルウェア クラスを実装してアプリケーションに登録するだけで、これらの機能を簡単に実装できます。ミドルウェア機能を使用する場合、最大限のパフォーマンス向上を得るには、適切なキャッシュ時間とキャッシュ パスを考慮する必要があります。

以上がCodeIgniter ミドルウェア: ページのキャッシュとアプリケーションの静的処理を高速化します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。