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 パラメータを使用するだけです。
例 43-1キャッシュの準備
|