Cache

Cache – Caching compressed files

Introduction

File_Archive 1.4 introduit la possibilité d'utiliser un tampon (cache) pour stocker le résultat intermédiare d'une compression zip. Pour cela, on utilise le paquet pear Cache_Lite.

A zip file is made of compressed files, one after the others. Ainsi, si vous générez une archive qui contient les fichiers A, B et C et un autre qui aura A et C, vous devez compresser deux fois les fichiers A et C. Pour utiliser le le cache vous permet de sauvegarder une version compressée des fichiers A,B et C lors de la première compression, et de les réutiliser à nouveau pour la seconde compression.

Exemples d'utilisation

The cache can be (and should be) used if you dynamically create some zip archive that contains frequently the same files. Par exemple, vous pouvez proposer aux utilisateurs de choisir des photos, vidéo ou autres fichiers dans une gallerie et de les récuperer dans un zip contenant la sélection

Si vous le faites sans cache, votre server répondra plus lentement si un nombre important d'utilisateurs demandes les fichiers. Avec un cache les fichiers ne seront demandés qu'une seule fois.

Sur ma machine (un thinkpad T42P avec l'équipement par défaut d'usine), génerer une archive zip de 200 Mo prend en environ 30s de CPU sans le cache, 32s de CPU avec un cache vide 2s de CPU si tous les fichiers à compresser sont déjà dans le cache.

Comment utiliser le cache

Le cache est un objet Cache_Lite. Vous devez donc avoir installé le paquet. Vous devrez alors utiliser la fonction File_Archive::setOption() avec le paramètre cache .

Mettre en place le cache

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

//On crée l'objet cache
$cache = new Cache_Lite(
    array(
        
// regardez la doc de Cache_Lite
        // pour le détail des paramètre du constructeurfor its constructor parameters
    
)
);

//Demandes à File_Archive d'utiliser l'objet cache que vous venz de créer
File_Archive::setOption('cache'$cache);

//Et alors creez vos archives comme habituellement
//Generons un fichier appelé archive.zip dans le dossier de travail
File_Archive::extract(
    
'folderToCompress',
    
'archive.zip'
);

//Envoyons l'archive à un utilisateur
File_Archive::extract(
    
'folderToCompress',
    
File_Archive::toArchive(
        
'archive.zip',
        
File_Archive::toOutput()
    )
);
?>
Supprimer et ajouter des fichiers (Previous) File_Cabinet (Next)
Last updated: Sun, 29 Aug 2010 — 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.