PHP Phar

Publié le 15/12/2010

Bon pendant qu’on y est, je vais vous présenter un truc pas nouveau mais dont j’ai quand même envie de parler: Phar ! C’est un peu comme un “jar”, ça rend service et en plus ça marche !

Avant de vous montrer un exemple, laissez moi juste vous expliquer ce qu’est une archive phar. C’est un paquet, une archive qui contient des fichiers. Elle contient des sources php, un manifest et quelques options comme un fichier de “stub”… on ne va pas se pencher là dessus… on va faire simple.

Si vous avez installé php-cli supérieur à la version 5.2.0 vous devez avoir l’utilitaire “phar”. Reste donc à faire un petit test.

cd /tmp
mkdir -p phartest/src
cd phartest/src

Dans ce répertoire vous créez un fichier “function.php”: <?php function test(){ echo "test\n"; }

Puis un fichier “index.php” (qui sera en fait le script appelé par défaut):

<?php include 'function.php'; test(); echo "done\n";

Voilà… bon on crée maintenant l’archive:

cd ..
phar pack -f test.phar src/

Cela crée donc un fichier “test.phar”… que va-t-on en faire ? et bien c’est simple: l’exécuter !

Et oui…

php test.phar
test
done

Cool hein ? on peut donc empaqueter une application complète dans une archive. Plus la peine de se prendre la tête à chercher où déposer des fichiers…

Alors en fait, pour les inclusions etc… faites attention à nos fameux “./” ou “../” qui ont tendance à ne pas bien marcher… utilisez plutôt des chemins absolus en utilisant le meta “phar:///” genre: “phar:///monarchive.phar/rep/script.php”.

Sachez aussi que les archives phar peuvent être ouvertes depuis php, en ligne de commande comme sur une application web. Je vois d’ici les CMS, CMF et framework qui sont en train de faire des modules en .phar plutôt que de zipper et demander à l’utilisateur de décompresser une archive dans un répertoire… haaaa que c’est beau le progrès :)

Sinon, allez voir la doc ici.

comments powered by Disqus