PHP Archive

netz98 new media GmbH

by Christian Münch

Was ist ein PHP Archiv?

Phar archives are best characterized as a convenient way to group several files into a single file. As such, a phar archive provides a way to distribute a complete PHP application in a single file and run it from that file without the need to extract it to disk. Additionally, phar archives can be executed by PHP as easily as any other file, both on the commandline and from a web server. Phar is kind of like a thumb drive for PHP applications.
http://www.php.net/manual/en/intro.phar.php

Was ist in einer Phar Datei?

  • ein Stub
  • Ein Manifest, welches den Inhalt beschreibt
  • Inhalte
  • Eine Signatur zum Prüfen ob die Datei valide ist (optional)

Historie

  • PEAR Paket "PHP_Archive"
  • 25. Januar 2005
  • Damals aktuelle PHP Version -> 4.3.7
  • Registrierte phar:// Stream
  • Reiner PHP Code

History / Phar Reloaded

  • 28.03.2007
  • PECL Package
  • Implementierung in C
  • SPL Integration
  • APC Kompatibilität
  • Damals aktuelle PHP Version 5.2

Status Quo

Ab PHP 5.3 (30. Juni 2009) ist das Phar Modul in der Standard Distribution enthalten.

Borat

Datei Formate

  • Phar
  • Tar
  • Zip

Feature Matrix

Feature Matrix

Komfortables Paketieren

  • Box
  • Phing

Box

http://box-project.org/

Phing

http://www.phing.info/

build.xml

<?xml version="1.0"?>
<project name="phar-create-example" default="dist">
    <target name="dist">
        <pharpackage basedir="${project.basedir}"
            compression="none"
            alias="test.phar"
            destfile="test.phar"
            clistub="src/cli/index.php"
            webstub="src/web/index.php"
            signature="true">

            <fileset dir="src">
                <include name="**" />
            </fileset>
        </pharpackage>
    </target>
</project>

Praxis-Beispiele

  • n98-magerun
  • PHPUnit

Danke!