2011-04-11 42 views
1

我是PHP新手,在基於類的網站上工作。所以我的問題很簡單。我可以像.NET一樣編譯網站嗎?PHP:我可以編譯/構建我的網站像.NET嗎?

這對我很有幫助,因爲我將我的IsAAction接口更改爲接受錯誤回調函數作爲Execute函數的參數,並且我希望所有實現都可以中斷,以便我可以輕鬆地看到要更改它們的位置。

在此先感謝。

+1

PHP源代碼在解析時由Zend引擎編譯爲字節碼。或者,您可以使用[HipHop for PHP](https://github.com/facebook/hiphop-php/wiki/)將PHP編譯爲C++,這就是Facebook所做的。 – Ryan 2011-04-11 02:27:13

回答

1

PHP可以被編譯,因爲您可以將它編譯爲機器代碼並防止每次訪問文件時進行解析。像APC這樣的加速器的工作方式。但是你不能像.NET DLL一樣編譯它,並且每個錯誤都會提前檢查。這將違背其動態性質。遲綁定意味着它將始終檢查運行時錯誤

對於您的特殊問題,我建議將單元測試添加到您的項目。他們是非常好無論如何,他們會幫助你在你的接口實現中發現錯誤。沒有他們,我個人離不開他們。您可能想要檢查PHPUnit或SimpleTests。

編輯爲了理解爲什麼PHP不能檢查你的錯誤,只需檢查這段代碼。

if ($_GET['impl'] == 'interface1') { 
    interface MyInterface { 
     function foo($var); 
    } 
} else { 
    interface MyInterface { 
     function bar($var, $var2); 
    } 
} 

class Implementation implements MyInterface { //Will crash or not depending on the URL! 
    function foo($var) {} 
} 
+0

有趣的例子,謝謝,我沒有意識到這一點。 – grefly 2011-04-11 07:27:48

0

不是我所知。 PHP是一種腳本語言。

1

在相關的計算器上有一個打開的主題。

Can you 「compile」 PHP code?

有些政黨,例如Facebook的重寫PHP運行,或它的一部分,使他們有可能運行編譯PHP代碼或者其他的源代碼,幾乎任何你喜歡的。

HipHop for PHP

它不是一件容易的事。但你可以做到。

相關問題