gpt4 book ai didi

php - 混合 PHP/Hacklang : Use the typechecker on regular PHP with commented type annotations

转载 作者:可可西里 更新时间:2023-11-01 14:02:53 25 4
gpt4 key购买 nike

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

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

假设某人无法将他们的 PHP 代码库转换为 Hack,因此他们用 hacklang 类型注释形式的注释编写 PHP,并在构建时使用工具去除注释,制作一个 hh 文件,运行类型检查器并报告错误。

例如原始 PHP:

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

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

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

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

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

最佳答案

我是 Facebook 的一名工程师,从事 Hack 方面的工作。你绝对可以做到这一点,我不会说这是一件的事情,但你会错过很多很棒的功能。 Hack 类型检查器可以在构建时运行 (hh_server --check/path/to/www),但运行类型检查器的最佳方式是作为守护进程运行。由于守护进程在后台增量检查您的代码,因此它可以在需要时非常快速地报告错误。这使您可以在编写代码时而不是在完成后获得反馈。这种快速反馈循环确实有助于加快开发速度。

您可能会错过的其他一些事情:

  • 许多语言特性,例如集合、lambda 表达式、类型注释的运行时强制执行和尾随逗号 ( Paul Tarjanpersonal favorite)
  • HHVM 的巨大性能提升。

因此,如果您绝对不能使用 HHVM,那么这可能值得考虑,但如果可以,那么我强烈推荐 HHVM,以便获得 Hack 的全部好处。

关于php - 混合 PHP/Hacklang : Use the typechecker on regular PHP with commented type annotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22578151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com