Successfully reported this slideshow.
Your SlideShare is downloading. ×

PHAR better Tools

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Log::Log4perl qw/:easy/
Log::Log4perl qw/:easy/
Loading in …3
×

Check these out next

1 of 20 Ad

PHAR better Tools

Download to read offline

Slides of my talk at PHP USERGROUP DRESDEN on 29.06.2016 bei Collab & Couch

* Example-Source-Code: https://github.com/PHPinDD/phar-better-tool-example
* Example-Distribution: https://github.com/PHPinDD/phar-better-tool-distribution

Slides of my talk at PHP USERGROUP DRESDEN on 29.06.2016 bei Collab & Couch

* Example-Source-Code: https://github.com/PHPinDD/phar-better-tool-example
* Example-Distribution: https://github.com/PHPinDD/phar-better-tool-distribution

Advertisement
Advertisement

More Related Content

Advertisement

Recently uploaded (20)

PHAR better Tools

  1. 1. HOLGER WOLTERSDORF CIO • FATHER • HUSBAND • PHP DEV ORGA-MITGLIED DER @hollodotme @phpindd phpind.de github.com/hollodotme github.com/PHPinDD
  2. 2. 1 2 3 Einführung in PHAR Tools PHARs verteilen & updaten Anwendungs- Beispiele PhiVE 4
  3. 3. Was sind PHARs eigentlich? ๏ PHARs sind (ausführbare) gepackte PHP Applikationen ๏ PHP-eigenes Format, aber konvertierbar nach ZIP und TAR ๏ Kann mit der PHAR Extension oder PEARPHP_Archive erstellt werden ๏ Lese-/Schreibzugriff über StreamWrapper 1 Einführung in PHAR Tools
  4. 4. Hallo Welt! <?php $phar = new Phar( __DIR__ . '/hello.phar' ); $phar->buildFromDirectory( __DIR__ . '/HelloPHAR' ); $phar->setDefaultStub( 'bin/main.php' ); /makephar.php <?php echo 'Hello World!'; /HelloPHAR/bin/main.php Einführung in PHAR Tools1
  5. 5. php.ini [Phar] ; http://php.net/phar.readonly ;phar.readonly = On ; http://php.net/phar.require-hash ;phar.require_hash = On ;phar.cache_list = Einführung in PHAR Tools1
  6. 6. php.ini [Phar] ; http://php.net/phar.readonly ;phar.readonly = On phar.readonly = Off ; http://php.net/phar.require-hash ;phar.require_hash = On ;phar.cache_list = Einführung in PHAR Tools1
  7. 7. Einführung in PHAR Tools1 Automate everything!
  8. 8. Einführung in PHAR Tools1 PHAR Tools vs. Tool-Scripts: ๏ Kaum Mehraufwand ๏ Beliebige Komplexität und Größe ๏ Einfach zu verteilen und zu aktualisieren ๏ Nicht ohne weiteres manipulierbar ๏ Herkunft kann verifiziert werden ๏ Dependency Encapsulation
  9. 9. Einführung in PHAR Tools1 Console / Process BOX Project Dependency Manager
  10. 10. Einführung in PHAR Tools1 Features Symfony Console: ๏ Coloured Logging / Verbosity-Levels ๏ App-Struktur / Commands ๏ Input / Output Interfaces ๏ Optionen und Argumente Handling ๏ Diverse Helpers ๏ Hilfe
  11. 11. Einführung in PHAR Tools1 Features BOX Project: ๏ Einfache Config für das PHAR-Building ๏ Placeholder z.B. für GIT-Version ๏ Stubbing für CLI Executables ๏ Include/Exclude Files ๏ Signing / Verifying mit OpenSSL Key
  12. 12. Anwendungs-Beispiele2
  13. 13. Anwendungsbeispiele2 “Standard” PHAR Tools: ๏ Testing: phpunit / codecept ๏ Analysis: pdepend, phpcpd, phpcs, phploc, phpmd, … ๏ Dependencies: composer, graph-composer ๏ und viele mehr…
  14. 14. Anwendungsbeispiele2 DEMO
  15. 15. PHARs verteilen & updaten 3
  16. 16. PHARs verteilen & updaten3 Tipps für die Verteilung: ๏ Eigenes Repo für die PHARs ๏ Versionierung nach SemVer (ohne “v”!) ๏ Permalink für den latest Build ๏ Katalog für alle Builds (JSON)
  17. 17. PHARs verteilen & updaten3 Install / Update-Strategien: ๏ Self-Hosted ๏ GitHub als Download zum Release ๏ PhiVE / PHAR.IO
  18. 18. VIELEN DANK! @hollodotme @phpindd phpind.de github.com/hollodotme github.com/PHPinDD www.fortuneglobe.com www.phpug-dresden.de @phpugdd HOLGER WOLTERSDORF slides available on slideshare
  19. 19. AppendixA Links / Quellen: ๏ Official PHAR documentation: http://php.net/phar ๏ Symfony Console Component: http://symfony.com/doc/current/components/console ๏ Symfony Process Component: http://symfony.com/doc/current/components/process ๏ BOX-Project (GitHub): https://github.com/box-project/box2 ๏ BOX-Project Documentation: http://box-project.github.io/box2/ ๏ PHAR-Update Lib: https://packagist.org/packages/herrera-io/phar-update ๏ Blog-Post “Distributing a PHP CLI app with ease” by Matthieu Moquet (@MattKetmo): https://moquet.net/blog/distributing-php-cli/ ๏ Blog Post “Secure PHAR Automation” by Matthew Weier O’Phinney: https://mwop.net/blog/2015-12-14-secure-phar-automation.html ๏ PHAR Updater: ๏ https://github.com/padraic/phar-updater ๏ https://github.com/kherge-abandoned/php-phar-update ๏ Example-Tools: https://github.com/PHPinDD/phar-better-tool-example ๏ Example-Distribution: https://github.com/PHPinDD/phar-better-tool-distribution

Editor's Notes

  • built-in PHAR Extension erlaubt den Zugriff auf Dateien innerhalb einer PHAR
    Vorteile von PHAR:
    Kann auch ohne PHAR Extension included / aufgerufen werden
    Sicherheit: Ist per Default read-only (gilt nicht für ZIP und TAR)
  • Zeige Example 1 in PHPStorm
  • readonly: Schränkt den Schreibzugriff auf PHARs ein (gilt nicht für ZIP/TAR)
  • require_hash: Erlaubt das Ausführen nur, wenn Signatur vorhanden
    cache_list: Cached Inhalte von webPHARs
    Zeige Example 1 (Hallo Welt), 2 (Console Stub) & 3 (WebPhar)
    Next: Warum PHAR tools?
  • Wie haben wir bisher automatisiert?
    Shell-Scripts
    PHP-Tool Scripts
    Cronjobs, die Applikationen aufrufen
  • NEXT: Helferlein
  • NEXT: Symfony Console & BOX Project
  • Zeige box.phar key:create, box.phar build box.phar verify
  • Next: “Standard”-Tools
  • NEXT: Helferlein
  • Zeige Example 4
    Zeige IceDump
  • NEXT: Helferlein

×