Bequem Phar Files erzeugen

Ich schreibe sehr gerne Bash Scripte, aber noch lieber Scripte in PHP. Solange man alles in ein File bekommt ist das auch kein Problem. Bei größeren Geschichten oder bei der Verwendung von Libs streut das Script leider auf mehrere Dateien. Entsprechend sind Installation und Updates dann auch aufwendiger. Irgendwer hat sich für diese Problematik Phar (PHP Archive) ausgedacht. Dabei werden alle Abhängigkeiten in ein komprimiertes Archiv gepackt – vom Prinzip her wie ein Jar in Java. Das manuelle Erzeugen von diesen Dateien ist leider recht unangenehm und verbraucht nach zuviel Zeit. Viel schneller geht’s mit dem PHP PHAR Compiler von Christian Neff. Bevor man loslegen kann muß die php.ini angepasst werden:

phar.readonly = 0

Anschließend den Compiler via Composer installieren und ein Script zum Bauen anlegen:

<?php
/**
 * User: ms
 * Date: 29.08.15
 * Time: 20:22
 * @see https://github.com/secondtruth/php-phar-compiler
 */
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'vendor/autoload.php';
use Secondtruth\Compiler\Compiler;
$compiler = new Compiler('./');
$compiler->addIndexFile('cli.php');
$compiler->addFile('vendor/autoload.php');
$compiler->addDirectory('vendor/composer', '!*.php');
$compiler->addDirectory('vendor/electrolinux', '!*.php');
$compiler->addDirectory('vendor/zendframework', '!*.php');
$compiler->addDirectory('src', '!*.php');
$compiler->compile("build/mvv-cli.phar");

Fertig.