• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Plein PHAR !
 

Plein PHAR !

on

  • 4,166 views

Support de ma conférence "Plein PHAR !" donnée le 23 septembre 2011 lors de l'Open World Forum.

Support de ma conférence "Plein PHAR !" donnée le 23 septembre 2011 lors de l'Open World Forum.

Statistics

Views

Total Views
4,166
Views on SlideShare
1,303
Embed Views
2,863

Actions

Likes
3
Downloads
10
Comments
1

14 Embeds 2,863

http://blog.mageekbox.net 1943
http://www.mathieurobin.com 671
http://feeds.feedburner.com 102
http://localhost 101
http://127.0.0.1:8795 13
https://twitter.com 12
http://paper.li 10
http://tweetedtimes.com 3
http://twitter.com 2
http://planete-php.fr 2
http://dev.mathieurobin.com 1
http://dev.mathieurobin.com 1
http://a0.twimg.com 1
http://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Merci ! Thanking you !
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Plein PHAR ! Plein PHAR ! Presentation Transcript

    • Plein PHAR ! Packagez vos applications avec PHAR http://medias.mageekbox.net/conferences/openWorldForum2011 frederic.hardy@mageekbox.net | http://blog.mageekbox.net | @mageekguyvendredi 23 septembre 2011
    • Préambule http://medias.mageekbox.net/conferences/openWorldForum2011 ⇢ suhosin.executor.include.whitelist="phar" ⇢ php openWorldForum.src.phar -e Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • À propos ⇢ Développeur PHP depuis 12 ans ⇢ Agiliste ⇢ Architecte logiciel ⇢ Contributeur à divers projet open-source ⇢ atoum ⇢ PHP, VIM, FreeBSD Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Plan ⇢ Feux de position ⇢ Feux de croisement ⇢ Feux de route Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Feux de position ⇢ Présentation ⇢ Historique ⇢ Installation Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Présentation Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Définition ⇢ PHAR = PHP Archive ⇢ PHAR ≃ JAR Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Objectifs ⇢ Un fichier unique ⇢ pour la distribution ⇢ pour lexécution Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Fonctionnalités ⇢ Signature ⇢ Métadonnées ⇢ Compression ⇢ Exécutable ou non Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Historique Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Origine ⇢ 2007 : Extension PECL ⇢ Steph Fox (php|architect) ⇢ Greg Beaver (PEAR/PECL) ⇢ Marcus Börger (PHP 5) Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Aujourdhui ⇢ 2009 ⇢ Extension intégrée à PHP 5.3 ⇢ 2011 ⇢ Silex ⇢ Photon ⇢ atoum ⇢ Behat ⇢ … Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Installation Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Configuration minimum ⇢ PHP ≥ 5.2 ⇢ Standard PHP Library ⇢ Compression ⇢ extensions zlib|bzip2 ⇢ Signature sécurisée ⇢ extension openssl Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Compilation et configuration ⇢ Lors du ./configure ⇢ Ne pas utiliser --disable-phar ⇢ Ne pas utiliser --zend-enable-multibyte ⇢ Directives de configuration ⇢ phar.readonly ⇢ phar.require_hash ⇢ phar.cache_list Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Feux de croisement ⇢ Mode demploi ⇢ Structure ⇢ Compatibilité ⇢ Création ⇢ Utilisation ⇢ Lutilitaire phar Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Mode demploi Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Archive exécutable ⇢ lisible par PHP directement ⇢ en CLI ⇢ via HTTP ⇢ au sein dun script Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Archive non exécutable ⇢ Lisible uniquement au sein dun script Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Structure Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Composition ⇢ Fichier de démarrage ⇢ Manifeste ⇢ Chemin daccès ⇢ Permissions ⇢ Fichiers ⇢ Signature et métadonnées ⇢ Format interne PHAR | TAR | ZIP Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Fichier de démarrage ⇢ Interprété lorsque larchive est ⇢ exécutée par PHP ⇢ incluse dans un script ⇢ Nest pas interprété via phar:// ⇢ Permet dinitialiser larchive ⇢ auto-chargement de classes ⇢ configuration ⇢ … Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Format PHAR ⇢ Format « naturel » ⇢ Uniquement exécutable ⇢ .phar Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Format TAR ⇢ Exécutable ou non ⇢ Chemin des fichiers ≤ 255 caractères ⇢ (.phar)?.tar Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Format ZIP ⇢ Exécutable ou non ⇢ Moins efficace que PHAR ou TAR ⇢ (.phar)?.zip Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Compatibilité Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • PHP ⇢ PHAR, TAR, ZIP ⇢ Dépend du fichier de démarrage ⇢ Des extensions disponibles Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Reste du monde ⇢ Archives au format ⇢ PHAR ⇢ illisible ⇢ ZIP ⇢ lisibles et modifiables ⇢ TAR ⇢ lisibles et modifiables Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Création Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Classes ⇢ phar : archives exécutables ⇢ pharData : archives non exécutable ⇢ hérite de phar ⇢ pharFileInfo : fichier dune archive ⇢ Exceptions ⇢ pharException ⇢ runtimeException ⇢ invalidArgumentException ⇢ unexpectedValueException Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • __DIR__ et __FILE__ ⇢ Dans le fichier de démarrage ⇢ __DIR__ = répertoire de larchive ⇢ __FILE__ = archive ⇢ En dehors ⇢ __DIR__ = répertoire du fichier ⇢ __FILE__ = fichier Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Sécurité ⇢ Archive exécutable ⇢ .phar(.tar|.zip)? ⇢ Création impossible par défaut ⇢ phar.readonly=1 ⇢ Solution ? ⇢ -d phar.readonly=0 en CLI ⇢ phar.readonly=0 + ini_set() Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Fichier de démarrage par défaut ⇢ TAR|ZIP ⇢ Ne fait rien ⇢ PHAR ⇢ CLI|HTTP ⇢ Support de PHAR non obligatoire ⇢ index.php obligatoire par défaut Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Modifier le comportement par défaut ⇢ Utiliser un fichier différent ⇢ de index.php ? ⇢ pour la CLI ? ⇢ via HTTP ? ⇢ phar::setDefaultStub() Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Fichier de démarrage « home made »    ⇢ Doit ⇢ contenir du code valide ⇢ se terminer par __HALT_COMPILER () ⇢ ?> non obligatoire ⇢ ;S*?> Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Méthodes dédiées ⇢ phar::mapPhar()|phar::webPhar() ⇢ performance|aliasing ⇢ phar::mungServer() ⇢ rend invisible larchive ⇢ phar::interceptFileFunc() ⇢ chemins de fichiers relatifs re-routés Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Ajouter des fichiers ⇢ interface arrayAccess ⇢ Phar::addFile() ⇢ Phar::addFromString() ⇢ Phar::addEmptyDir() ⇢ Phar::buildFromDirectory() ⇢ Phar::buildFromIterator() ⇢ SplFileInfo Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Manipuler des fichiers ⇢ Modification ⇢ Mêmes outils que pour la création ⇢ Suppression ⇢ interface arrayAccess ⇢ phar::delete() Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Signature ⇢ Intégrité ⇢ MD5 ⇢ SHA-1 (défault), SHA-256, SHA-512 ⇢ Intégrité + sécurité ⇢ OpenSSL Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Utilisation Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Utilisation dans un script Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Extraire des fichiers ⇢ Phar::extractTo() ⇢ tous les fichiers ⇢ un fichier spécifique ⇢ mais pas les répertoires Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Lutilitaire phar ⇢ Livré en standard depuis PHP 5.3 ⇢ script PHP ⇢ permet de manipuler une archive ⇢ phar help Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple dutilisation Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Feux de route ⇢ Métadonnées ⇢ Compression ⇢ Point de montage ⇢ Performances ⇢ Cas pratique Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Métadonnées Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Définition ⇢ Informations complémentaires ⇢ version, date, éditeur, documentation… ⇢ globales à larchive ⇢ par fichier ⇢ Stockées indépendamment des donnés ⇢ chaîne, entier, flottant, tableau, objet Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple sur une archive Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple sur un fichier Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Compression Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Possibilités ⇢ PHAR | TAR ⇢ globale ⇢ PHAR | ZIP ⇢ par fichier ⇢ Algorithmes ⇢ gzip ⇢ bzip2 Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Règles de nommage PHAR TAR ZIP phar::NONE .phar (.phar)?.tar (.phar)?.zip phar::GZ .phar.gz (.phar)?.tar.gz (.phar)?.zip phar::BZ2 .phar.bz2 (.phar)?.tar.bz2 (.phar)?.zip Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Compression globale Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Compression locale Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Décompression ⇢ Transparente lors de lutilisation ⇢ Peut être demandée explicitement ⇢ phar::decompress() ⇢ phar::decompressFiles() ⇢ pharFileInfo::decompress() Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Points de montage Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Utilité ⇢ Pouvoir accéder à des fichiers externes ⇢ journaux dévénements ⇢ fichier de configuration ⇢ … ⇢ Externe ou interne Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Montage externe Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Montage interne Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Performances Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Impact ⇢ Sans compression ⇢ Perte légère de performance ⇢ Avec compression ⇢ 10 à 15% de perte ⇢ phar.cache_list ⇢ APC ⇢ gain significatif ! Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Cas réel Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • atoum ⇢ Framework de tests unitaires ⇢ simple, moderne et intuitif ⇢ http://github.com/mageekguy/atoum ⇢ http://downloads.atoum.org/nightly Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple en CLI Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Exemple en PHP Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Références ⇢ http://php.net/phar ⇢ http://blog.pascal-martin.fr/post/php-5.3-phar-php-archive ⇢ http://blog.mageekbox.net Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Questions ? Plein PHAR ! | Open World Forum | Paris | 23 novembre 2011vendredi 23 septembre 2011
    • Cette conférence est maintenant terminée, vous pouvez reprendre une activité normale ! frederic.hardy@mageekbox.net | http://blog.mageekbox.net | @mageekguyvendredi 23 septembre 2011