ホームページ >バックエンド開発 >PHPチュートリアル >CodeIgniter ミドルウェア: ページのキャッシュとアプリケーションの静的処理を高速化します。
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 回目の更新でページの読み込み速度が大幅に向上することがわかります。
次に、ページの静的処理を実装するために、
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 サイトの他の関連記事を参照してください。