キャッシュ

キャッシュ – 圧縮したファイルのキャッシュ

導入

File_Archive 1.4 では、 キャッシュを使用して zip 圧縮の結果を保存できるようになりました。 これを行うために、PEAR パッケージ Cache_Lite を使用しています。

zip ファイルを作成するには、まずされた圧縮ファイルを用意することになります。 たとえば、ファイル A、B および C を含むアーカイブと ファイル A および C を含むアーカイブのふたつを作成したい場合は、 A と C については 2 回圧縮する必要があります。 キャッシュを使用すると、最初の圧縮の際に圧縮したファイル A、B および C をキャッシュしておくことができ、2 回目の圧縮ではそれを再利用できるようになります。

使用例

キャッシュを使うのは (使うべきなのは)、同じファイルを含む zip アーカイブを動的に何度も作成しなければならない場合などです。 たとえば、あなたが公開している画像や動画などからユーザが選択した ファイルを zip 形式でダウンロードさせるといった場合がこれにあたります。

これをキャッシュを使わずに行うと、多くのユーザがアクセスした場合に 反応が非常に遅くなることでしょう。キャッシュを使えば、 同じファイルを何度も圧縮することはなくなります。

私のマシン (工場出荷時のままの状態の thinkpad T42P) では、 キャッシュのない状態で 200MB の zip アーカイブを作成するのにかかった時間は 30 秒でした。キャッシュを使用した場合、まだキャッシュが作成されていないときは 32 秒かかりましたが、圧縮されるすべてのファイルがキャッシュに載った状態では 2 秒で処理が完了しました。

キャッシュの使用法

キャッシュの正体は Cache_Lite オブジェクトです。 つまり、まずこのパッケージをインストールしなければなりません。 インストールさえしてしまえば、あとは File_Archive::setOption() 関数で cache パラメータを使用するだけです。

キャッシュの準備

<?php
require_once "File/Archive.php";
require_once 
"Cache/Lite.php";

// キャッシュオブジェクトを作成します
$cache = new Cache_Lite(
    array(
        
// コンストラクタのパラメータは Cache_Lite のドキュメントを参照ください
    
)
);

// File_Archive に対して、いま作成したキャッシュオブジェクトを使うように指示します
File_Archive::setOption('cache'$cache);

// あとはいつもどおりにアーカイブを作成します
// archive.zip という名前のファイルを作業フォルダに作成します
File_Archive::extract(
    
'folderToCompress',
    
'archive.zip'
);

// アーカイブをユーザに送信します
File_Archive::extract(
    
'folderToCompress',
    
File_Archive::toArchive(
        
'archive.zip',
        
File_Archive::toOutput()
    )
);
?>
ファイルの削除や追加 (Previous) File_Cabinet (Next)
Last updated: Tue, 29 Jul 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.