PHP-Phar-Archive anpassen

Durch meinen Recherchen mit Fitnesse und dem Slim-TestRunner für PHP (PhpSlim) bin ich das erste mal in Kontakt mit Phar-Archiven gekommen, dem Pedant zu Javas JAR. Da der Runner, also das Phar-Archiv, nicht meinen Anforderungen entspricht, musste ich ihn ändern.

Problem

Einfaches entpacken, wie JAR, geht aber nicht. Die Phar-Tools sind unter Debian und deswegen auch nicht unter Ubuntu zu haben. Und in Empir wollte ich mich nicht einarbeiten.

Lösung

die aktuell gültige php.ini in der Shell suchen

php -r "phpinfo();"|grep php.ini|grep Loaded

phar-Schreiboperationen erlauben

Dazu in der php.ini die Zeile phar.readonly = 0 einfügen. Ggf. die bestehende Angabe auskommentieren mit einem führenden “;”.

Das Phar-Archiv unter anderem Namen ablegen

cp phpslim.phar orignal.phar

Das Phar-Archiv in ein Tar wandeln (zurück umwandeln habe ich leider nicht gefunden)

php -r "$p = new Phar('./phpslim.phar');$p->convertToData(Phar::TAR);"

Das tar-Archiv entpacken und die gewünschte Datei suchen und bearbeiten

tar xf phpslim.tar;vi tmp/PhpSlim/StatementExecutor.php

Die Datei in der phar-Archiv wieder einspielen

php -r "$p = new Phar('./phpslim.phar');$p->addFile('tmp/StatementExecutor.php', 'PhpSlim/StatementExecutor.php');"

phar-Schreiboperationen wieder zurücksetzen

Um Sicherheitslücken zu vermeiden, die Änderung in der php.ini von oben einfach rückgängig machen

Anschließend kann das Phar normal weiterverwendet werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert