PHP Phar
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":
Puis un fichier "index.php" (qui sera en fait le script appelé par défaut):
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.
Trackbacks
Pour ajouter un trackback (retrolien) sur ce ticket, utilisez cette adresse: http://www.metal3d.org/index.php/trackback/default/tb?id=blog%2F270


Ouais sauf que si tu appelles ton fichier func et que tu essaies d'inclure function, ça marche pas... je chipote
Raaaaa ok je corrige :)