Как программно проверить, работает ли на HHVM?
Мне нужно запустить данный пакет как во время выполнения HHVM, так и в традиционном PHP. Мой вопрос: есть ли способ проверить программно, если текущая среда HHVM? Что-то вроде этого:
<?php
if(running_on_hhvm()) {
// do hhvm compatible routine
}
else {
// do normal routine
}
Ответы
Ответ 1
Вы можете использовать константу HHVM_VERSION
для HHVM:
if (defined('HHVM_VERSION')) {
// Code
}
Вы можете поместить это в свою собственную функцию, если хотите.
function is_hhvm() {
return defined('HHVM_VERSION');
}
if (is_hhvm()) {
// Code
}
Источник: http://www.hhvm.com/blog/2393/hhvm-2-3-0-and-travis-ci
Ответ 2
В некоторых старых версиях HHVM не определено HHVM_VERSION. Все они выводят "HipHop" в phpinfo().
function is_hhvm(){
ob_start();
phpinfo();
$info=ob_get_contents();
ob_end_clean();
return ($info=='HipHop');
}