採用PEAR來緩衝PHP程式
來源:互聯網
上載者:User
PHP 世界中緩衝是一個熱門的話題,因為 PHP 產生的動態網頁面,每次使用者請求都需要重新計算,不論請求的結果是否一樣,同時,PHP 每次都會編譯一次指令碼。這樣的超負荷運轉對一個流量很高的網站來說肯定難以忍受。幸運的是, Web 的結果可以緩衝,而不需要重新運行和編譯指令碼,商品化的產品像 ZendCache 或者開源的 Alternate PHP Cache都提供了把 PHP 指令碼編譯為位元組代碼並緩衝的辦法。
PEAR 的緩衝包提供了緩衝動態內容,資料庫查詢和 PHP 函數調用的架構。
就像 Perl 有 CPAN, TeX 有 CTAN,PHP 也有自己的中心資產庫,存放類,庫和模組。這個庫稱為 PEAR(PHP Extension and Add-On Repository)。
本文假設你已經安裝了 PEAR 環境,如果沒有的話,可以去 PHP 網站下載。
PEAR 的緩衝包包含一個總體的緩衝類和幾個特別的子類。緩衝類使用容器類來存貯和管理緩衝資料。
下面是 PEAR 緩衝當前所包含的容器,以及各自的參數:
file -- file 容器在檔案系統儲存了緩衝的資料,是最快的容器。
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
password
cache_table
persistent
使用 PEAR Cache 所得到的效能提升取決於你所選擇的緩衝容器,例如,把資料庫的結果再次存入資料庫緩衝中就顯得毫無意義。
PEAR Cache 的函數緩衝模組能把任何函數或者方法的結果緩衝,不論是 PHP 的內建函數還是使用者自訂函數,他預設採用檔案容器,把緩衝資料放入到一個叫做
function_cache 的目錄。
Cache_Function 類的構造器可以有三個可選的參數: