我是PHP新手,在基于类的网站上工作。所以我的问题很简单。我可以像.NET一样编译网站吗?PHP:我可以编译/构建我的网站像.NET吗?
这对我很有帮助,因为我将我的IsAAction接口更改为接受错误回调函数作为Execute函数的参数,并且我希望所有实现都可以中断,以便我可以轻松地看到要更改它们的位置。
在此先感谢。
我是PHP新手,在基于类的网站上工作。所以我的问题很简单。我可以像.NET一样编译网站吗?PHP:我可以编译/构建我的网站像.NET吗?
这对我很有帮助,因为我将我的IsAAction接口更改为接受错误回调函数作为Execute函数的参数,并且我希望所有实现都可以中断,以便我可以轻松地看到要更改它们的位置。
在此先感谢。
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) {}
}
有趣的例子,谢谢,我没有意识到这一点。 – grefly 2011-04-11 07:27:48
不是我所知。 PHP是一种脚本语言。
https://github.com/facebook/hiphop-php/wiki - 尽管我敢肯定有other answers在这里,你会发现有用。
在相关的计算器上有一个打开的主题。
有些政党,例如Facebook的重写PHP运行,或它的一部分,使他们有可能运行编译PHP代码或者其他的源代码,几乎任何你喜欢的。
它不是一件容易的事。但你可以做到。
PHP源代码在解析时由Zend引擎编译为字节码。或者,您可以使用[HipHop for PHP](https://github.com/facebook/hiphop-php/wiki/)将PHP编译为C++,这就是Facebook所做的。 – Ryan 2011-04-11 02:27:13