ホームページ バックエンド開発 PHPチュートリアル シンプルな PHP キャッシュの実装 idea_PHP チュートリアル

シンプルな PHP キャッシュの実装 idea_PHP チュートリアル

Jul 13, 2016 am 10:33 AM
php キャッシュ

一般的に、キャッシュの目的は、アクセスを高速化するためにデータを 1 か所に置くことです。しかし、何百 M ものデータをそこに保存できるでしょうか? もちろん、これは非現実的です。たとえば、ob_start() キャッシュ ページがオンになっている場合、ページのコンテンツは、ページ出力が自動的にクリアされるまで、ファイル ヘッダーを送信する前にメモリにキャッシュされます。 ob_get_contents の戻り値、または ob_end_clean によって表示されます。これは静的ページの生成によく使用され、テンプレートによく反映されます。PHP による静的ページの生成については、こちらの記事で詳しく説明されています。これは 1 つの方法ですが、これは一時的なものであり、問​​題に対する良い解決策ではありません。

さらに、ASP にはパブリックパラメータを保存できるオブジェクトアプリケーションがあり、これもキャッシュとみなされますが、PHP では、開発者がそのようなオブジェクトを作成するのをこれまで見たことがありません。 asp. Net のページ キャッシュ テクノロジはビューステートを使用し、キャッシュはファイルの関連付けです (必ずしも正確であるとは限りません)。ファイルが変更されずにタイムアウトしない場合は、キャッシュが読み取られて結果が返されます。これがこのソースコードを見てください:

リーリー

このキャッシュ クラスには 2 つの属性があります:

リーリー

$cache_dir は、キャッシュされたファイルが配置される Web サイトのディレクトリに対する相対的な親ディレクトリです。 $expireTime (注 1) は、キャッシュされたデータの有効期限です。 データまたはファイルがロードされると、最初にキャッシュ ファイルが存在するかどうかが判断され、ファイルの最終変更時刻とキャッシュ時刻の合計が現在時刻より大きいかどうかが判断されます。有効期限が切れていない場合は false を返します。 false の場合は、元のデータを読み取り、キャッシュ ファイルに書き込み、データを返します。

次にプログラムを見てください:

リーリー

クラスが初めてインスタンス化されるとき、ファイル名をキャッシュするためのパラメーターを使用してデフォルト関数が構築されます。ファイルが存在しない場合は、編集権限を持つフォルダーを作成し、作成が失敗した場合に例外をスローします。次に、キャッシュ クラスの $cache_dir 属性をフォルダー名に設定します。すべてのキャッシュ ファイルはこのフォルダーの下にあります。

リーリー

これはクラス class のデストラクターです。デモンストレーションのために、キャッシュ クラス リソースが正常に解放されたことを示す文字列を出力します。

リーリー

このメソッドはエラー情報を出力します。

リーリー

このメソッドは、現在の URL の情報を返します。これは、主に x をキャッシュするために海外の CMS システムで行っているものです。 php?page=1,x。このようなファイルには php?page=2 など、キャッシュ クラス機能を拡張するためにここにリストされています。

リーリー

cache_page メソッドは、キャッシュされたファイル名とデータをそれぞれ渡します。これは、最初に fopen を使用してファイルを開き、次にハンドルを呼び出してファイルをロックし、次に fwrite を使用してファイルを書き込みます。最後にハンドルを放すと、いずれかのステップでエラーが発生するとエラーがスローされます。 次のメモが表示されるかもしれません:

バイトストリームに書き込み、他の形式に書き込むにはシリアル化します。ちなみに、配列を使用したい場合は(MySQLデータベースからクエリの結果を選択できます)、シリアル化関数を使用して書き込みます。そして、unserialize を使用して元の型を読み取ります。

リーリー

これは、ファイル名でキャッシュを読み取る方法です。ファイルが存在しない場合、または読み取れない場合は、もちろん、非人道的な場合は、ファイルを再生成することができます。キャッシュ。

リーリー

この関数は、インターフェイス メソッドとして記述することができ、ファイルの最終更新時刻 + 有効期限が現在の時刻を超えているかどうかを判断します。ファイルが存在しない場合、または期限切れである場合は、ここでは簡単にするために、キャッシュ クラスを継承できます。データベースからデータを取得するための特定のクラス。

注 1: キャッシュ時間は、時間の状況に応じて自分で調整できます。キャッシュ時間 (つまり、キャッシュ キー) に注意してください。コントロールもキャッシュされます。これは CMS システムで広く使用されており、更新されるキーをキャッシュに保存するため、戦闘全体の制御が非常に簡単になります。

注 2: PHP5 はクラス継承のサポートを開始します。これは興味深いことです。構成されたクラスで Web サイトの残りの部分をグローバルに記述し、データ層と対話するクラス (MySQL と対話するクラスなど) を記述します。クラスはデータ対話クラスを継承しており、データベースを非常に簡単に読み取ることができます。これについては、時間があるときに詳しく説明します。

特記事項として、このクラスファイルはphp5以降用ですので、他のバージョンでは使用しないでください。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/752412.html技術記事一般的に、キャッシュの目的は、アクセスを高速化するためにデータを 1 か所に置くことです。メモリが最速であることは間違いありませんが、何百 M ものデータをメモリに保存できるでしょうか?これは非現実的です。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles