PharData::buildFromIterator

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::buildFromIteratorConstruit une archive tar ou zip à partir d'un itérateur

Description

array PharData::buildFromIterator ( Iterator $iter [, string $base_directory ] )

Remplit une archive tar ou zip à partir d'un itérateur. Deux styles d'itérateurs sont supportés, les itérateurs qui font correspondre le chemin de fichier au sein de l'archive avec le chemin sur le disque, et les itérateurs comme DirectoryIterator qui retournent des objets SplFileInfo. Pour les itérateurs qui retournent des objets SplFileInfo, le second paramètre est requis.

Exemples

Exemple #1 Exemple avec PharData::buildFromIterator() et SplFileInfo

<?php
$phar = new PharData('projet.tar');
$phar->buildFromIterator(
	new RecursiveIteratorIterator(
	 new RecursiveDirectoryIterator('/chemin/vers/projet')),
	'/chemin/vers/projet');
?>

<?php
$phar = new PharData('projet.tar');
$phar->buildFromIterator(
	new RecursiveIteratorIterator(
	 new Phar('/chemin/vers/unautrephar.phar')),
	'phar:///chemin/vers/unautrephar.phar/chemin/vers/projet');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Exemple #2 Exemple avec PharData::buildFromIterator() et d'autres itérateurs

<?php
$phar = new PharData('projet.tar');
$phar->buildFromIterator(
	new ArrayIterator(
	 array(
		'interne/fichier.php' => dirname(__FILE__) . '/unfichier.php',
		'unautre/fichier.jpg' => fopen('/chemin/vers/grosfichier.jpg', 'rb'),
	 )));
?>

Liste de paramètres

iter

N'importe quel itérateur qui fait correspondre de façon associative un fichier tar/zip ou qui retourne des objets SplFileInfo

base_directory

Pour les itérateurs qui retournent des objets SplFileInfo, la partie du chemin complet vers le fichier à enlever lors de l'ajout à l'archive tar/zip

Valeurs de retour

PharData::buildFromIterator() retourne un tableau associatif faisant correspondre un chemin de fichier interne avec un chemin complet vers le fichier sur le système de fichiers.

Erreurs / Exceptions

Cette méthode retourne une exception UnexpectedValueException quand l'itérateur retourne des valeurs incorrectes, comme une clé entière plutôt qu'une chaîne, une exception BadMethodCallException quand un itérateur basé sur SplFileInfo-based est passé sans paramètre base_directory, ou une exception PharException si des erreurs ont été rencontrées lors de la sauvegarde de l'archive phar.

Voir aussi

PharData
Manuel PHP
Partager
cet élément
Lien :
LoadingChargement en cours