src/Composer/Package/Archiver/PharArchiver.php
public function archive($sources, $target, $format, array $excludes = array(), $ignoreFilters = false)
    {
        $sources = realpath($sources);

        // Phar would otherwise load the file which we don't want
        if (file_exists($target)) {
            unlink($target);
        }

        try {
            $filename = substr($target, 0, strrpos($target, $format) - 1);

            // Check if compress format
            if (isset(static::$compressFormats[$format])) {
                // Current compress format supported base on tar
                $target = $filename . '.tar';
            }

            $phar = new \PharData($target, null, null, static::$formats[$format]);
            $files = new ArchivableFilesFinder($sources, $excludes, $ignoreFilters);
            $filesOnly = new ArchivableFilesFilter($files);
            $phar->buildFromIterator($filesOnly, $sources);
            $filesOnly->addEmptyDir($phar, $sources);

            if (isset(static::$compressFormats[$format])) {
                // Check can be compressed?
                if (!$phar->canCompress(static::$compressFormats[$format])) {
                    throw new \RuntimeException(sprintf('Can not compress to %s format', $format));
                }

                // Delete old tar
                unlink($target);

                // Compress the new tar
                $phar->compress(static::$compressFormats[$format]);

                // Make the correct filename
                $target = $filename . '.' . $format;
            }

            return $target;
        } catch (\UnexpectedValueException $e) {
            $message = sprintf(
                "Could not create archive '%s' from '%s': %s",
                $target,
                $sources,
                $e->getMessage()
            );

            throw new \RuntimeException($message, $e->getCode(), $e);
        }
    }
public function archive($sources, $target, $format, array $excludes = array(), $ignoreFilters = false)
    {
        $sources = realpath($sources);

        // Phar would otherwise load the file which we don't want
        if (file_exists($target)) {
            unlink($target);
        }

        try {
            $filename = substr($target, 0, strrpos($target, $format) - 1);

            // Check if compress format
            if (isset(static::$compressFormats[$format])) {
                // Current compress format supported base on tar
                $target = $filename . '.tar';
            }

            $phar = new \PharData($target, null, null, static::$formats[$format]);
            $files = new ArchivableFilesFinder($sources, $excludes, $ignoreFilters);
            $filesOnly = new ArchivableFilesFilter($files);
            $phar->buildFromIterator($filesOnly, $sources);
            $filesOnly->addEmptyDir($phar, $sources);

            if (isset(static::$compressFormats[$format])) {
                // Check can be compressed?
                if (!$phar->canCompress(static::$compressFormats[$format])) {
                    throw new \RuntimeException(sprintf('Can not compress to %s format', $format));
                }

                // Delete old tar
                unlink($target);

                // Compress the new tar
                $phar->compress(static::$compressFormats[$format]);

                // Make the correct filename
                $target = $filename . '.' . $format;
            }

            return $target;
        } catch (\UnexpectedValueException $e) {
            $message = sprintf(
                "Could not create archive '%s' from '%s': %s",
                $target,
                $sources,
                $e->getMessage()
            );

            throw new \RuntimeException($message, $e->getCode(), $e);
        }
    }
public function archive ( $ sources , $ target , $ format , array $ excludes = array ( ) , $ ignoreFilters = false ) { $ sources = realpath ( $ sources ) ; // Phar would otherwise load the file which we don't want if ( file_exists ( $ target ) ) { unlink ( $ target ) ; } try { $ filename = substr ( $ target , 0 , strrpos ( $ target , $ format ) - 1 ) ; // Check if compress format if ( isset ( static :: $ compressFormats [ $ format ] ) ) { // Current compress format supported base on tar $ target = $ filename . '.tar' ; } $ phar = new \ PharData ( $ target , null , null , static :: $ formats [ $ format ] ) ; $ files = new ArchivableFilesFinder ( $ sources , $ excludes , $ ignoreFilters ) ; $ filesOnly = new ArchivableFilesFilter ( $ files ) ; $ phar -> buildFromIterator ( $ filesOnly , $ sources ) ; $ filesOnly -> addEmptyDir ( $ phar , $ sources ) ; if ( isset ( static :: $ compressFormats [ $ format ] ) ) { // Check can be compressed? if ( ! $ phar -> canCompress ( static :: $ compressFormats [ $ format ] ) ) { throw new \ RuntimeException ( sprintf ( 'Can not compress to %s format' , $ format ) ) ; } // Delete old tar unlink ( $ target ) ; // Compress the new tar $ phar -> compress ( static :: $ compressFormats [ $ format ] ) ; // Make the correct filename $ target = $ filename . '.' . $ format ; } return $ target ; } catch ( \ UnexpectedValueException $ e ) { $ message = sprintf ( "Could not create archive '%s' from '%s': %s" , $ target , $ sources , $ e -> getMessage ( ) ) ; throw new \ RuntimeException ( $ message , $ e -> getCode ( ) , $ e ) ; } }
{@inheritdoc}
{