SpipArchives
extends SpipArchiver
in package
Point d'entrée de la gestion des archives compressées de SPIP jusqu'à la version 2.2
use Spip\Archiver\SpipArchiver
Table of Contents
Constants
- MAX_N = 999999
- COMPRESSIONS_CONNUES = ['zip' => 'zip', 'x-tar' => 'tar', 'gzip' => 'tgz']
- COMPRESSIONS_CONNUES_RAW = ['Zip archive data' => 'zip']
Properties
- $code_erreur : int
- $erreurs : array<string|int, string>
- $fichier_archive : string
- $fichiers_ignores : array<string|int, string>
- $lecture_seule : bool
- $message_erreur : string
- $mode_compression : string
Methods
- __construct() : mixed
- Constructeur de base.
- commenter() : bool
- Associer un commentaire à l'archive.
- deballer() : bool
- Extraire tout ou partie des fichiers de l'archive vers une destination.
- emballer() : bool
- Créer ou modifier des fichiers dans le fichier d'archive.
- erreur() : int
- Renvoyer le dernier code d'erreur.
- getLectureSeule() : bool
- Indiquer si l'archive est accessible en ecriture ou pas.
- informer() : array<string|int, mixed>
- Indiquer le détail du contenu de l'archive.
- message() : string
- Renvoyer le dernier message d'erreur.
- retirer() : bool
- Retirer une liste de fichiers dans le fichier d'archive.
- archiveEnEcriture() : ArchiveInterface|null
- Vérifier que le fichier d'archive est accessible en écriture.
- archiveEnLecture() : ArchiveInterface|null
- Vérifier que le fichier d'archive est accessible en lecture.
- getArchive() : ArchiveInterface|null
- Fournir un objet Archive en fonction du mode de compression.
- listerFichiers() : array<string|int, string>
- Scanner les dossiers.
- mimeType() : string
- Indiquer le type mime.
- setErreur() : void
- Définir la dernière erreur produite.
- trouverRacine() : string
- Cherche la plus longue racine commune à tous les fichiers.
Constants
MAX_N
public
final int
MAX_N
= 999999
Nombre maximum de sous-dossiers pour trouver la racine commune
COMPRESSIONS_CONNUES
protected
array<string, string>
COMPRESSIONS_CONNUES
= ['zip' => 'zip', 'x-tar' => 'tar', 'gzip' => 'tgz']
Mode de compression connus, d’après mime-type
COMPRESSIONS_CONNUES_RAW
protected
array<string, string>
COMPRESSIONS_CONNUES_RAW
= ['Zip archive data' => 'zip']
Mode de compression connus, sur raw mime-type
Properties
$code_erreur
protected
int
$code_erreur
= 0
Dernier code d'erreur
$erreurs
protected
array<string|int, string>
$erreurs
= [0 => 'OK', 1 => 'erreur_inconnue', 2 => 'extension_inconnue', 3 => 'fichier_absent', 4 => 'fichier_lecture_seule', 5 => 'destination_inaccessible', 6 => 'fichier_deja_existant', 7 => 'fichier_inaccessible_en_lecture', 8 => 'tentative_de_vidage_du_fichier']
Liste des erreurs possibles
$fichier_archive
protected
string
$fichier_archive
$fichiers_ignores
protected
array<string|int, string>
$fichiers_ignores
= ['.ok']
liste des fichiers à exclure de l'archive
$lecture_seule
protected
bool
$lecture_seule
= true
true si l'archive est en lecture seule
$message_erreur
protected
string
$message_erreur
= 'OK'
Dernier message d'erreur
$mode_compression
protected
string
$mode_compression
= ''
Methods
__construct()
Constructeur de base.
public
__construct(string $fichier_archive[, string $mode_compression = '' ]) : mixed
Le fichier d'archive doit représenter le chemin vers un fichier du file system local
Ce chemin peut être relatif au dossier où se trouve spip.php (chemin/vers/fichier.zip) ou absolu (/tmp/cache/fichier.tgz)
Le mode de compression n'est utile que lorsqu'on créée une archive avec une extension exotique En lecture, pour fournir la liste des fichiers contenus ou procéder à l'extraction, L'archiveur détecte le mode de compression en fonction du mime type, peu importe l'extension du fichier En écriture, pour supprimer des fichiers, l'archiveur fait de même Si le paramètres est fourni, il ne sera pas exploité lors des appels aux méthodes ::retirer(), ::informer() et ::deballer() S'il n'est pas fourni pour créer une archive à extension exotique (ex: tmp/archive.spip), la méthode ::emballer produire l'erreur 2 ('archives:extension_inconnue')
Parameters
- $fichier_archive : string
-
Chemin vers le fichier d'archive
- $mode_compression : string = ''
-
Mode de compression si l'extension du fichier n'est pas explicite
commenter()
Associer un commentaire à l'archive.
public
commenter([string $texte = '' ]) : bool
Parameters
- $texte : string = ''
-
Texte du commentaire à associer à l'archive
Return values
bool —Succès de l'opération
deballer()
Extraire tout ou partie des fichiers de l'archive vers une destination.
public
deballer([string $destination = '' ][, array<string|int, mixed> $fichiers = [] ]) : bool
Parameters
- $destination : string = ''
-
Chemin du répertoire d'extraction
- $fichiers : array<string|int, mixed> = []
-
Liste des fichiers à extraire
Return values
bool —Succès de l'opération
emballer()
Créer ou modifier des fichiers dans le fichier d'archive.
public
emballer([array<string|int, mixed> $chemins = [] ][, string|null $racine = null ]) : bool
Parameters
- $chemins : array<string|int, mixed> = []
- $racine : string|null = null
-
Repertoire racine des fichiers a retirer du chemin lorsqu'on emballe
Return values
bool —Succès de l'opération
erreur()
Renvoyer le dernier code d'erreur.
public
erreur() : int
Return values
int —Dernier code d'erreur
getLectureSeule()
Indiquer si l'archive est accessible en ecriture ou pas.
public
getLectureSeule() : bool
Return values
bool —true si l'archive est en lecture seule
informer()
Indiquer le détail du contenu de l'archive.
public
informer() : array<string|int, mixed>
Return values
array<string|int, mixed> —détail du contenu de l'archive
message()
Renvoyer le dernier message d'erreur.
public
message() : string
Tags
Return values
string —Dernier message d'erreur
retirer()
Retirer une liste de fichiers dans le fichier d'archive.
public
retirer([array<string|int, mixed> $fichiers = [] ]) : bool
Parameters
- $fichiers : array<string|int, mixed> = []
-
Liste des fichiers à retirer
Return values
bool —Succès de l'opération
archiveEnEcriture()
Vérifier que le fichier d'archive est accessible en écriture.
protected
archiveEnEcriture() : ArchiveInterface|null
Return values
ArchiveInterface|nullarchiveEnLecture()
Vérifier que le fichier d'archive est accessible en lecture.
protected
archiveEnLecture() : ArchiveInterface|null
Return values
ArchiveInterface|nullgetArchive()
Fournir un objet Archive en fonction du mode de compression.
protected
getArchive() : ArchiveInterface|null
Return values
ArchiveInterface|nulllisterFichiers()
Scanner les dossiers.
protected
listerFichiers(array<string|int, string>|array<string, string> $chemins) : array<string|int, string>
Parameters
- $chemins : array<string|int, string>|array<string, string>
Return values
array<string|int, string>mimeType()
Indiquer le type mime.
protected
mimeType() : string
Return values
string —mime type de type "application/[MODE]; charset=binary" ou vide
setErreur()
Définir la dernière erreur produite.
protected
setErreur(int $code) : void
Parameters
- $code : int
-
un code d'erreur
trouverRacine()
Cherche la plus longue racine commune à tous les fichiers.
protected
trouverRacine(array<string|int, string> $path_list) : string
Parameters
- $path_list : array<string|int, string>
-
Liste de chemin de fichiers
Return values
string —Chemin commun entre tous les fichiers