ホームページ >バックエンド開発 >PHPチュートリアル >PEAR を使用して PHP プログラムをバッファーする 1_PHP チュートリアル

PEAR を使用して PHP プログラムをバッファーする 1_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:28:58736ブラウズ

バッファリングは 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 キャッシュの関数バッファを呼び出します。


"; } } class bar { function foobar($object) { echo '$'.$object.'->foobar('.$object.') '; } } $bar = new bar; function foobar() { echo 'foobar()'; } // Cache_Function オブジェクトを取得 $cache = new Cache_Function() // クラス foo (foo::bar()) の静的関数 bar() をキャッシュします $cache->call('. foo::bar', 'test'); // $bar->foobar() $cache->call('bar->foobar', 'bar'); > 以下では、出力をバッファリングするために Cache_Output を使用します。 例 2: スクリプトの出力をバッファリングする // PEAR キャッシュの出力バッファをロードします '.') ); // バッファリングされるページのマークを計算します。ページのバッファリングは、 // URL、HTTP GET および POST 変数、および Cookie に依存します。 $cache_id = $cache->generateID(array('url' => $REQUEST_URI, 'post' => $HTTP_POST_VARS, 'cookies' = > $HTTP_COOKIE_VARS) ); // クエリ バッファ if ($content = $cache->start($cache_id)) { // バッファ ヒット echo $content; } // バッファが失われました // -- ここにコンテンツを挿入しますコードを生成する -- // Put ページはキャッシュに保存されます echo $cache->end() ?> Cache_Output クラスを使用すると、動的データベース駆動型 Web サイト アプリケーションを静的 Web アプリケーションに簡単に変換できます。 HTML コンテンツの圧縮に GZIP が使用されることで、インターネットにアクセスするためにモデムを使用するユーザーも Cache_Output クラスの機能を拡張できます。 GZIP 圧縮された HTML コンテンツをバッファリングすることで、圧縮時間を節約します...

www.bkjia.com本当http://www.bkjia.com/PHPjc/531732.html技術記事バッファリングは PHP の世界でホットなトピックです。PHP によって生成される動的ページは、リクエストの結果が同じであるかどうかに関係なく、ユーザーがリクエストするたびに再計算する必要があるからです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。