ホームページ >バックエンド開発 >PHPチュートリアル >PEAR を使用して PHP プログラムをバッファーする 1_PHP チュートリアル
バッファリングは PHP の世界では注目のトピックです。これは、PHP によって生成される動的ページは、リクエストの結果が同じであるかどうかに関係なく、ユーザーがリクエストするたびに再計算する必要があるためです。このような過負荷は、トラフィックの多い Web サイトでは確かに耐えられないでしょう。幸いなことに、Web の結果はスクリプトを再実行してコンパイルすることなくキャッシュできます。ZendCache やオープン ソースの Alternate PHP Cache などの商用製品は、PHP スクリプトをバイト コードにコンパイルしてキャッシュする方法を提供します。 PEAR のバッファリング パッケージは、動的コンテンツ、データベース クエリ、および PHP 関数呼び出しをバッファリングするためのフレームワークを提供します。 Perl に CPAN があり、TeX に CTAN があるのと同じように、PHP にもクラス、ライブラリ、モジュールを保存するための独自の中央リソース ライブラリがあります。このライブラリは PEAR (PHP Extension and Add-On Repository) と呼ばれます。 この記事では、PEAR 環境がインストールされていることを前提としています。インストールされていない場合は、PHP Web サイトからダウンロードできます。 PEAR のバッファ パッケージには、全体的なバッファ クラスといくつかの特殊なサブクラスが含まれています。バッファ クラスはコンテナ クラスを使用して、バッファされたデータを保存および管理します。 現在 PEAR バッファに含まれているコンテナとそれぞれのパラメータは次のとおりです。 ファイル -- ファイル コンテナはファイル システムにバッファされたデータを保存し、最も高速なコンテナです。 cache_dir – これはコンテナがファイルを保存するディレクトリです。 filename_prefix – キャッシュ ファイルのプレフィックス (例: "cache_")。 shm -- shm コンテナは、バッファリングされたデータを共有メモリに配置します。ベンチマークでは、現在の実装では、このコンテナがファイル コンテナよりも遅いことが示されています。 shm_key -- 共有メモリで使用されるキー。 shm_perm – 共有メモリ データ セグメントを使用する許可。 shm_size -- 割り当てられた共有メモリのサイズ。 sem_key – セマフォのキー値。 sem_perm – セマフォの権限。 db – PEAR のデータベース抽象化レイヤー。 dsn – データベース接続の DSN。 PEAR の DB ドキュメントを参照してください。 cache_table – テーブルの名前。 phplib – phplib コンテナはデータベース抽象化レイヤーを使用してバッファを保存します。 db_class db_file db_path local_file local_path ext/dbx -- PHP のデータベース抽象化レイヤー拡張機能。データベースにバッファーを保存したい場合は、このコンテナーを使用できます。 module host db username passwd Cache_tablepersistent PEAR キャッシュを使用することで得られるパフォーマンスの向上は、選択したバッファ コンテナによって異なります。たとえば、データベースの結果をデータベース キャッシュに再度保存することは意味がありません。 PEAR Cache の関数バッファ モジュールは、PHP の組み込み関数であっても、ユーザー定義関数であっても、任意の関数またはメソッドの結果をバッファリングできます。デフォルトでファイル コンテナを使用し、バッファリングされたデータを function_cache というディレクトリに置きます。 Cache_Function クラスのコンストラクターには、3 つのオプションのパラメーターを指定できます。 $container: バッファー コンテナーの名前。 $container_options: バッファコンテナの配列パラメータ。 $expires: バッファ オブジェクトの有効期限が切れる時間 (秒単位)。 バッファリングは、通常の関数呼び出しで Cache_Function クラスの call() メソッドが使用されるときにトリガーできます。 call() の呼び出しは簡単です。1 つのパラメータは関数の名前、次に関数のパラメータ、2 番目のパラメータは呼び出される関数の最初のパラメータというようになります。例を見てみましょう。 例 1:バッファ関数とメソッド呼び出し // PEAR キャッシュの関数バッファを呼び出します。