2010-07-29 76 views
0

對於一個項目,我需要安排幾個PHP腳本。一些腳本有點複雜(例如,發送郵件,執行數據庫內容,使用多個外部Web服務,使用外部文件和類等)。問題是這些腳本也需要從瀏覽器中調用,並且它們確實使用了$_SERVER陣列中的一些變量(包括HTTP_HOST)。
有沒有辦法讓這些腳本在命令行中工作,還是我必須將它們重寫爲'命令行兼容'?還是使用命令行中指定不可用變量的參數更好?調度PHP腳本的最佳實踐

我們有一臺服務器運行Windows Server 2008

回答

2

你應該抽象腳本的一部分是常見的瀏覽器和命令行環境。然後你可以將它包含到兩個腳本中,其中一個將使用$ _SERVER,另一個命令行參數變量來運行公共部分。

+0

這似乎是一個好主意,謝謝。 – 2010-07-29 11:18:49

+0

+1是一個好主意。 – 2010-07-29 12:15:00

+0

對我來說,缺點是使用$ _SERVER的塊位於多個包含文件中。 – 2010-07-29 12:34:32

1

調度PHP腳本的最佳實踐?

1)不要。這是一個滑坡 - 你最終花費太多時間試圖將腳本組織到可用的時間段,最終導致一個系統根據哪些作業已經運行而沒有改變狀態。真的希望所有處理都直接響應用戶請求而觸發。 (這並不意味着他們必須同步工作並且與用戶請求在同一執行線程中)。

2)不這樣做的MS Windows中 - 微軟的操作系統都提供圖形用戶界面不錯,但沒有

我見過的作業管理和自動化在其他操作系統上提供可用的工具範圍很多情況下,人們只是因爲代碼的性能太差而將東西推入預定的批次中。在很多情況下,更好的解決方案是解決性能問題。儘管如此,既然您已經陷入困境,是的,您可以將所有代碼複製到命令行和網絡版本中 - 或者您可以下載wgetcURL並安排這些程序調用通過所需的URL值通過GET或POST

+0

對不起,不同意使用HTTP請求計劃任務的方法。您可以讓專門創建的控制器在命令行中運行,從而使需要最少輸出的操作成爲可能。 – foxtrot 2013-11-06 15:17:17