2013-10-22 30 views
5

我正計劃在phar檔案庫中創建一堆PHP腳本(以便於部署)並允許它從已知存儲庫進行自我更新。自我更新phar檔案?

在現場網站上,phar文檔應該如何更新?不更新其內容,但只是自己更換(從new.phar以前下載到/tmp什麼的)就足夠了。

我特別關注PHP中「替換自己」的缺陷,同時考慮到請求可能正在進行中(腳本將主要通過AJAX從網絡中調用)。

+0

我不知道是否有什麼具體到可能使事情變得複雜phars,但我只是第一次去驗證新葯業作品加入了--version或者一些這樣的參數並且調用它。然後,將當前文件移到新位置,移入新文件,刪除舊文件。 – OddEssay

+0

@OddEssay我實際上忘了提及,但我主要擔心的是web請求,而不是通過命令行調用phat。我之所以把它變成phar只是因爲它非常優雅,但是我必須在活動服務器的請求正在進行時替換它。理想情況下,如果PHP會在複製之前啓動的請求使用舊phar的內存副本,但我不知道它是否執行該操作,那麼我希望這樣做。 –

+0

通常,對於正常的PHP Web請求,所有內容都將被編譯,然後從內存中運行,所以如果更改源文件,它將僅影響新請求,即使舊文件中的進程仍在運行。 - 另外,使用移動而不是複製意味着傳輸時間將會很短。 – OddEssay

回答