2012-10-29 38 views
1

我正在使用PHP5在我的系統上編寫Web應用程序,但該應用程序需要與PHP4兼容。有什麼辦法模擬PHP4,或者至少發出警告?如何讓PHP5模擬舊版本?

謝謝。

+0

如果你的生產環境是PHP4,你的開發環境也應該如此。但實際上,PHP5.3也不應該少於這個數字。 – cmbuckley

+0

謝謝。不幸的是,我的開發發行版不支持PHP4。無論如何,其他項目依賴於PHP5,所以我需要保持它。 – tongro

+0

在這種情況下,您應該爲您的開發環境編譯源代碼的2個版本。 Derick Rethans展示了一種最簡單的方式,以發行不可知論的方式做到這一點:http://derickrethans.nl/multiple-php-version-setup.html。更好的是,使用Gentoo :-) – cmbuckley

回答

1

作爲一般規則,如果您避免在PHP5中添加的函數和參數(如每個函數的文檔中所示),那麼它應該在PHP4中正常工作。 PHP擅長向後兼容。

+0

謝謝。問題是試圖追蹤不兼容代碼的位置,因爲PHP4生產服務器沒有提供任何細節,只是一個空白頁面。 – tongro

+0

嘗試在'php.ini'文件中打開'error_reporting'。 –

+0

謝謝。不幸的是我不能在生產服務器上這樣做。無論如何這是共享主機,所以我不能在php.ini。 – tongro

0

不,沒有。您將不得不在機器上安裝PHP 4以提供運行時環境。或者,更好的是,讓客戶相信2012年的PHP 4已經過時了。

+0

謝謝。我將在我的開發機器上安裝與PHP5並行的PHP4;那可能會完成這項工作。 – tongro

1

沒有辦法模擬我意識到的PHP4。您需要在真正的PHP4環境中運行您的代碼。這是我建議:

  • 抓住一箇舊的發行版,其中包括一個PHP4包。顯然,Ubuntu Dapper (6.06) does.
  • 將它安裝到您的盒子上的VM(VirtualBox或VMWare)。
  • 爲虛擬機創建一個指向您的應用程序目錄的虛擬機的共享目錄。
  • 在虛擬機內部,創建一個從webroot到共享目錄的掛載點的符號鏈接。

一旦完成,您可以或多或少的忘記虛擬機。所有你需要做的就是保持它運行。像以前一樣更改您的應用程序目錄中的代碼。您可以使用虛擬機的IP從瀏覽器運行它。

(也許你甚至可以在虛擬機上安裝的是舊版本的XDebug,並從你的IDE中做適當的遠程調試。但我不知道是否XDebug的是PHP4兼容的。)

+0

謝謝。首先我會嘗試更簡單的解決方案。 – tongro