2013-10-22 8 views
5

Ich plane, eine Reihe von PHP-Skripten in einem phar-Archiv zu erstellen (für eine einfache Bereitstellung) und es sich selbst von einem bekannten Repository aktualisieren zu lassen.Selbst-Update ein Phar-Archiv?

Wie sollte sich ein Phar-Archiv auf einer Live-Website aktualisieren? Nicht seinen Inhalt aktualisieren, sondern nur sich selbst zu ersetzen (von einem new.phar zuvor heruntergeladen zu /tmp oder etwas) wäre genug.

Ich bin speziell besorgt über Fallstricke auf "Ersetze mich" in PHP, auch unter Berücksichtigung Anfragen könnten im Gange sein (das Skript wird in erster Linie aus dem Web von AJAX aufgerufen werden).

+0

überprüfen Ich weiß nicht, ob es etwas spezifisch phars ist, die Dinge komplizieren könnte, aber ich würde nur mit dem ersten gehen die neuen phar Werke Überprüfung durch einen --Version Hinzufügen oder einen solchen Parameter und es aufzurufen. Verschieben Sie dann die aktuelle Datei an einen neuen Speicherort, verschieben Sie die neue Datei, löschen Sie die alte Datei. – OddEssay

+0

@OddEssay Ich habe tatsächlich vergessen zu erwähnen, aber meine Hauptsorge ist über Web-Anfragen, die phat nicht per Kommandozeile aufrufen. Mein Grund dafür, es zu einem Phar zu machen, ist nur, weil es so elegant ist, aber ich müsste es unbedingt ersetzen, während Anfragen an den Live-Server im Gange sein könnten. Idealerweise würde es mir gefallen, wenn PHP eine Speicherkopie des alten phar für die vor der Kopie gestarteten Anfragen verwenden würde, aber ich weiß nicht, ob es das tut oder nicht. –

+0

Im Allgemeinen wird bei normalen PHP-Webanforderungen alles kompiliert und dann aus dem Speicher ausgeführt. Wenn Sie also die Quelldateien ändern, wirkt sich dies nur auf neue Anforderungen aus, selbst wenn die Prozesse aus der alten Datei noch ausgeführt werden. - Die Verwendung von Verschieben statt Kopieren bedeutet, dass die Übertragungszeit minimal ist. – OddEssay

Antwort