检测程序是通过HipHop还是常规CLI / mod_php运行

时间:2011-08-07 23:49:49

标签: php environment hiphop

我想知道是否有人找到了一种方法来检测PHP脚本/程序是通过Facebook的HipHop还是“常规”环境(CLI,mod_php,CGI)运行。

目前我正在使用的解决方法是寻找未实现的功能(例如PHP 5.3函数)并检查所述功能的可用性。当然,这是一个狡猾的黑客(而不是便携式),因为随着HipHop的成熟,将会实现越来越多的功能。

2 个答案:

答案 0 :(得分:3)

在HipHop下运行时,

$_ENV['HPHP']设置为1。

感谢nicolasff的解决方案

参考:https://github.com/facebook/hiphop-php/issues/382#issuecomment-1754648

答案 1 :(得分:0)

我认为这种方法根本不起作用 - 因为HipHop在项目中静态编译所有代码,你不能包含HipHop无法理解的任何代码路径或函数调用即使它们在运行时被跳过。基本上,为了使您的项目在HipHop下运行,您必须编写大部分(如果不是全部)代码,并假设它已被使用。