混合PHP / Hacklang:在带有注释类型注释的常规PHP上使用类型检查器

卡尔保

由于无法访问64位VM,目前无法构建hhvm,因此我无法使用其拥有的typechecker。他们的文档似乎没有详细描述类型检查器(hh_server和hh_client?)的操作。

我想知道,对于使用它的任何人,是否可以在这种情况下使用类型检查器:

假设某人无法将其PHP代码库转换为Hack,因此他们以hacklang类型注释的形式编写带有注释的PHP,并在构建时使用工具将注释剥离,创建hh文件,运行typechecker并报告错误。

例如原始PHP:

<?php
function lar(/* int */ $x)/* : int */
{
    return $x;
}

复制以上内容,删除注释,将?php更改为?hh:

<?hh
function lar(int $x): int
{
    return $x;
}

通过类型检查器运行它,看看它是否产生错误。

这样,您就可以使用普通的PHP访问合法的类型检查,而无需在HHVM上运行它。类型检查器是否以适合此设置的方式运行?

加布·列维(Gabe Levi)

我是Facebook的一名工程师,从事Hack工作。您绝对可以做到这一点,我不会说这是一件坏事,但是您会错过许多出色的功能。Hack typechecker可以在构建时(hh_server --check /path/to/www运行,但是运行typechecker的最佳方法是作为守护程序。由于守护程序会在后台逐步检查您的代码,因此只要有要求,它就可以非常迅速地报告错误。这使您可以在编写代码时而不是完成后获得反馈这种快速的反馈循环确实有助于加快开发速度。

您可能会错过的其他一些东西:

  • 许多语言功能,例如集合,lambda表达式,类型注释的运行时强制执行和尾随逗号(Paul Tarjan个人偏爱
  • HHVM的巨大性能提升。

因此,如果您绝对不能使用HHVM,则可能值得考虑,但是如果可以,我强烈建议您使用HHVM,以充分利用Hack的好处。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章