PharData::buildFromIterator

creationdev

Documentation

Référencement web stratégique
Référencement web stratégique

1000$ CAD

Conception web standard
Conception web standard

2500$ CAD

Conception web microsite
Conception web microsite

1000$ CAD

Conception web ecommerce
Conception web ecommerce

2500$ CAD

Formation référencement web
Formation référencement web

100$ CAD

Référencement web optimisé
Référencement web optimisé

500$ CAD

Référencement web expert
Référencement web expert

750$ CAD

Conception web extra
Conception web extra

5000$ CAD

Conception d'application web
Conception d'application web

100$ CAD

Référencement web organique
Référencement web organique

300$ CAD

Méthode

Méthode

PharData::buildFromIterator

PharData::buildFromIterator

Page Vue 26 déc. 2018
Page Vue 16 fois

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::buildFromIterator — Construit une archive tar ou zip à partir d'un itérateur

Description

public PharData::buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array

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.

Liste de paramètres

iterator

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

baseDirectory

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 baseDirectory, ou une exception PharException si des erreurs ont été rencontrées lors de la sauvegarde de l'archive phar.

Historique

Version Description
8.1.0 phardata::buildFromIterator() ne retourne plus false désormais.
8.0.0 baseDirectory est désormais nullable.

Exemples

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

Pour la plupart de l'archive tar/zip, l'archive reflétera la structure de répertoire actuelle et le second style est le plus utile. Par exemple, pour créer une archive tar/zip contenant les fichiers contenant la structure de répertoire ci-dessous :

/chemin/vers/projet/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     fichier1.php
                     fichier2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

Ce code peut être utilisé pour ajouter des fichiers à l'archive "projet.tar" tar :

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

Le fichier projet.tar peut alors être effacé immédiatement. phardata::buildFromIterator() ne règle pas les paramètres tels que la compression, les métadonnées, ce qui peut être fait après avoir créé l'archive tar/zip.

A noter que phar::buildFromIterator() peut aussi être utilisé pour copier le contenu d'une archive phar, tar ou zip existante, car l'objet PharData est dérivé de DirectoryIterator :

<?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

La seconde forme d'itérateur peut être utilisée avec n'importe quel itérateur qui retourne une association clé => valeur, tel que ArrayIterator :

<?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'),
)));
?>

Voir aussi


Source : http://www.php.net/
Ref : methode-phardata::buildfromiterator.php




Contact

Contact

Veuillez saisir les infos dans le formulaire d'identification
suivant pour concevoir et référencer votre site.









Veuillez saisir votre message.

Carte d'affaires

Affichage de la carte d'affaires recto/verso.

Carte d'affaires recto
Carte d'affaires verso

Partagez

Partagez

Discussion ayant comme sujet la page PharData::buildFromIterator.

©2025 creationdev -  F.A.Q. -  Soutien -  Haut de page
THÈMES: