phar-php-fileformat-php-comparison-3

  • What makes a phar a phar and not
    a tar or a zip?
  • Head-to-head comparison of Phar, Tar and Zip

  • Head-to-head comparison of Phar, Tar and Zip
  • Head-to-head comparison of Phar, Tar and Zip

    Head-to-head comparison of Phar, Tar and Zip

    What are the good and the bad things about the
    three supported file formats in the phar extension? This table
    attempts to address that question.

    Feature matrix: Phar vs. Tar vs.
    Zip
    Feature Phar Tar Zip
    Standard File Format No Yes Yes
    Can be executed without the Phar Extension [1] Yes No No
    Per-file compression Yes No Yes
    Whole-archive compression Yes Yes No
    Whole-archive signature validation Yes Yes Yes (PHP 5.3.1+)
    Web-specific application support Yes Yes Yes
    Per-file Meta-data Yes Yes Yes
    Whole-Archive Meta-data Yes Yes Yes
    Archive creation/modification [2] Yes Yes Yes
    Full support for all stream wrapper functions Yes Yes Yes
    Can be created/modified even if phar.readonly=1 [3] No Yes Yes

    Tip

    [1] PHP can only directly access the contents of a
    Phar archive without the Phar extension if it is using a
    stub that extracts the contents of the phar archive. The
    stub created by Phar::createDefaultStub() extracts the phar
    archive and runs its contents from a temporary directory if no phar
    extension is found.

    Tip

    [2] All write access requires
    phar.readonly to be disabled in php.ini or on the
    command-line directly.

    Tip

    [3] Only tar and zip archives without
    .phar in their filename and without an executable stub
    .phar/stub.php can be created if phar.readonly=1.