Я пытаюсь поиграть с xhp и обнаружил, что запустив единственный пример xhp, я смог найти https://github.com/hhvm/xhp-js-example выдает ошибку \nFatal error: Uncaught Error: Found top-level code in :\nStack trace:\n#0 {main}
при следовании README, как в HHVM 4.71. Удаление require_once(__DIR__.'/vendor/autoload.php');
устраняет ошибку кода верхнего уровня, но теперь я застрял с ошибкой \nFatal error: Uncaught Error: unknown class xhp_x__element in :\nStack trace:\n#0 /Users/user/code/xhp-js-example/example.php(12): <unknown>()\n#1 {main}
. Я попытался изменить код в example.php на тот, который можно найти здесь:
class :introduction extends :x:element {
protected function render(): \XHPRoot {
return <strong>Hello!</strong>;
}
}
class :intro-plain-str extends :x:element {
protected function render(): \XHPRoot {
// Since this function returns an XHPRoot, if you want to return a primitive
// like a string, wrap it around <x:frag>
return <x:frag>Hello!</x:frag>;
}
}
echo <introduction />;
echo PHP_EOL.PHP_EOL;
echo <intro-plain-str />;
поскольку это не сработало, я также попробовал простой пример из здесь:
<?hh // strict
$user_name = 'Fred';
echo <tt>Hello <strong>{$user_name}</strong></tt>;
но изменен, чтобы устранить ошибку верхнего уровня, обернув ее в функцию и аннотировав ее следующим образом:
<?hh // strict
<<__EntryPoint>>
function main(): void {
$user_name = 'Fred';
echo <tt>Hello <strong>{$user_name}</strong></tt>;
}
Я бы получил очень похожую ошибку \nFatal error: Uncaught Error: Class undefined: xhp_tt in /Users/user/code/xhp-js-example/example.php:6\nStack trace:\n#0 (): main()\n#1 {main}
Любая помощь в том, чтобы заставить эти, казалось бы, простые примеры работать, была бы очень признательна, поскольку очень болезненно и обескураживающе пробовать эту технологию, когда кажется, что базовые примеры не работают. это использует пакет macos hhvm на Catalina.
РЕДАКТИРОВАТЬ: я также пробовал это без использования xhp-js
, который включен в пример репо, и я получаю то же сообщение об ошибке.
xhp-js
очень устарел, последний раз обновлялся в 2017 году. а>. С тех пор в Hack было внесено много критических изменений, поэтому мы даже не можем скомпилировать последнийxhp-js
как есть. Если вы просто хотите увидеть работу XHP, попробуйте этот пример в документах. Как вы заметили, вы должны требовать xhp-lib как библиотеку (через автозагрузку), поскольку она предоставляет все определения тегов и еще много чего. - person concat   schedule 21.08.2020xhp-js
и, к сожалению, получаю ту же проблему. Я обновлю исходный пост, чтобы отразить, что я пробовал это и безxhp-js
. - person reactor   schedule 21.08.2020hh_client
) - person concat   schedule 21.08.2020hh_client
выдает кучу ошибок, как описано здесь: stackoverflow.com/questions/62978039/. Возврат к версии старше 4.62, как упоминалось в ветке, — это единственный способ избавиться от ошибок, в то время как рекомендуемые изменения в .hhconfig не помогли. Я также пытался запустить код в версии 4.61 на тот случай, если в версии новее 4.61 были внесены критические изменения в XHP. Я надеюсь, что hack и hhvm все еще серьезно поддерживаются с учетом xhp, и что я наткнулся на то, что они не отказываются от его поддержки. - person reactor   schedule 21.08.2020