2011-04-11 44 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

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

相关问题