Related Links : Search Engine Optimization | | Search Engine Marketing | Online Marketing | Freelance Programmer| SEO Thailand | SEO Expert | SEO services | PHP Programmer Thailand | SEO Tutorial | What is SEO |

  Home Our SEO Services SEO Expert Consultant Php Programmer Scripts| Email : sachin {at} jainsachin {dot} com

PHP | Construct a tar or zip archive from an iterator. | Manual | Tutorial | Help

SEO Services



Website Programming in PHP / MYSQL



Friends


    Construct a tar or zip archive from an iterator.

    PharData::buildFromIterator

    (No version information available, might be only in CVS)

    PharData::buildFromIterator — Construct a tar or zip archive from an iterator.

    Description

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

    Populate a tar or zip archive from an iterator. Two styles of iterators are supported, iterators that map the filename within the tar/zip to the name of a file on disk, and iterators like DirectoryIterator that return SplFileInfo objects. For iterators that return SplFileInfo objects, the second parameter is required.

    Examples

    Example #1 A PharData::buildFromIterator() with SplFileInfo

    For most tar/zip archives, the archive will reflect an actual directory layout, and the second style is the most useful. For instance, to create a tar/zip archive containing the files in this sample directory layout:

        
    /path/to/project/
                     config/
                            dist.xml
                            debug.xml
                     lib/
                         file1.php
                         file2.php
                     src/
                         processthing.php
                     www/
                         index.php
                     cli/
                         index.php
        

    This code could be used to add these files to the "project.tar" tar archive:

    <?php
    $phar 
    = new PharData('project.tar');
    $phar->buildFromIterator(
        new 
    RecursiveIteratorIterator(
         new 
    RecursiveDirectoryIterator('/path/to/project')),
        
    '/path/to/project');
    ?>

    The file project.tar can then be used immediately. buildFromIterator() does not set values such as compression, metadata, and this can be done after creating the tar/zip archive.

    As an interesting note, buildFromIterator() can also be used to copy the contents of an existing phar, tar or zip archive, as the PharData object descends from DirectoryIterator:

    <?php
    $phar 
    = new PharData('project.tar');
    $phar->buildFromIterator(
        new 
    RecursiveIteratorIterator(
         new 
    Phar('/path/to/anotherphar.phar')),
        
    'phar:///path/to/anotherphar.phar/path/to/project');
    $phar->setStub($phar->createDefaultWebStub('cli/index.php''www/index.php'));
    ?>

    Example #2 A PharData::buildFromIterator() with other iterators

    The second form of the iterator can be used with any iterator that returns a key => value mapping, such as an ArrayIterator:

    <?php
    $phar 
    = new PharData('project.tar');
    $phar->buildFromIterator(
        new 
    ArrayIterator(
         array(
            
    'internal/file.php' => dirname(__FILE__) . '/somefile.php',
            
    'another/file.jpg' => fopen('/path/to/bigfile.jpg''rb'),
         )));
    ?>

    Parameters

    iter

    Any iterator that either associatively maps tar/zip file to location or returns SplFileInfo objects

    base_directory

    For iterators that return SplFileInfo objects, the portion of each file's full path to remove when adding to the tar/zip archive

    Return Values

    buildFromIterator() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

    Errors/Exceptions

    This method returns UnexpectedValueException when the iterator returns incorrect values, such as an integer key instead of a string, a BadMethodCallException when an SplFileInfo-based iterator is passed without a base_directory parameter, or a PharException if there were errors saving the phar archive.


    SEO Tutorial / Articles





    Php / Mysql Tutorial



    Articles



      Portfolio


      SEO by Jainsachin