PHP Phar

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.

Ça peut vous intéresser aussi


Poste de développement PHP sous Fedora

Linux est un système parfait pour développer. Simple d’installation,...


Créer une extension PHP en C

Vous avez des contraintes de performances ? ou alors vous ...


Une Astuce PHP

Un truc que je ne savais pas et que je ...


Thread PHP dans Copix

Alors qu’on discutait sur le canal #fedora-fr de langages,...

Merci de m'aider à financer mes services

Si vous avez apprécié cet article, je vous serai reconnaissant de m'aider à me payer une petite bière :)

Si vous voulez en savoir plus sur l'utilisation de flattr sur mon blog, lisez cette page: Ayez pitié de moi

Commentaires

Ajouter un commentaire

Laurent Sarrazin - 15/12/2010

Ouais sauf que si tu appelles ton fichier func et que tu essaies d’inclure function, ça marche pas… je chipote

Metal3d - 15/12/2010

Raaaaa ok je corrige :)

Ajouter un commentaire

(*) Votre e-mail ne sera ni revendu, ni rendu public, ni utilisé pour vous proposer des mails commerciaux. Il n'est utilisé que pour vous contacter en cas de souci avec le contenu du commentaire, ou pour vous prévenir d'un nouveau commentaire si vous avez coché la case prévue à cet effet.