HHVM + Hacklang:错误/警告输出到浏览器

时间:2014-04-10 18:14:19

标签: hhvm hacklang

有没有办法告诉HHVM将Hacklang警告和错误输出到浏览器中? PHP之类的功能可以启用display_errorsdisplay_startup_errorserror_reporting设置为E_ALL

HHVM版本:

$ php -v

HipHop VM 3.1.0-dev+2014.04.09 (rel)
Compiler: heads/master-0-g4fc811c64c23a3686f66a2bea80ba47f3eaf9f3d
Repo schema: 79197c935790c0b9c9cb13566c3e727ace368117

我尝试过以下配置:

$ cat /etc/hhvm/php.ini
; php options
display_startup_errors = On
error_reporting = E_ALL
display_errors = On

; hhvm specific 
hhvm.log.level = Warning
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
hhvm.mysql.typed_results = false

并且:

$ cat /etc/hhvm/server.ini 

; php options
pid = /var/run/hhvm/pid

; hhvm specific 
hhvm.server.port = 9000
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.log.level = Warning
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc
hhvm.mysql.typed_results = false
hhvm.debug.full_backtrace = true
hhvm.debug.server_stack_trace = true
hhvm.debug.server_error_message = true
hhvm.debug.translate_source = true

1 个答案:

答案 0 :(得分:3)

tl;博士:你不能。

这里要记住的是,类型检查器会对您的代码进行静态分析,而您所谈论的PHP错误会在运行时显示。如果这是C ++,你可以在编译步骤中将Hack类型检查器错误与错误进行比较 - 所以Hack会在代码运行之前告诉你错误的事情。

诀窍是使用vim or emacs插件在保存文件时警告错误,或者从终端使用hh_client,或为您喜欢的IDE构建一个插件(随意发送拉请求!)。如果你想为Sublime Text,Eclipse或任何你想要的东西构建一个插件,hh_client --json提供了一个易于解析的输出。

请注意,某些错误是运行时错误,而有些则不是。函数args和返回类型应该在运行时为最新的HHVM构建抛出异常,例如。问题在于,只有在遇到某个代码路径时才会看到这些错误。 Hack的优点在于它会对代码中的所有问题产生错误,即使它是您可能无法在运行时测试的代码路径。