2014-04-10 5 views
5

Gibt es eine Möglichkeit, HHVM mitzuteilen, dass Hacklang Warnungen und Fehler in den Browser ausgegeben werden sollen?HHVM + Hacklang: Fehler/Warnungen im Browser ausgegeben

$ php -v 

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

Ich habe versucht, die folgende Konfiguration:

$ 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 

Und:

$ 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 
etwas wie PHP ist mit display_errors, display_startup_errors und error_reporting Set E_ALL

HHVM Version freigegeben

+0

Ich denke 'fastcgi' definiert, dass nur stdout auf der Seite angezeigt wird. stderr wird direkt in die Fehlerprotokolldatei geschrieben. – PKeidel

Antwort

3

tl; dr: Sie können t.

Hier ist zu beachten, dass der Typchecker eine statische Analyse Ihres Codes durchführt, während die PHP-Fehler, über die Sie sprechen, zur Laufzeit angezeigt werden. Wenn dies C++ wäre, könnten Sie die Hack-Typchecker-Fehler mit den Fehlern während des Kompilierungsschritts vergleichen - also teilt Hack Ihnen Dinge mit, die falsch sind, bevor der Code überhaupt ausgeführt wird.

Der Trick besteht darin, entweder die vim or emacs Plugins zu verwenden, die Sie vor Fehlern warnen, während Sie die Datei speichern, oder hh_client vom Terminal zu verwenden oder ein Plugin für Ihre bevorzugte IDE zu erstellen (zögern Sie nicht, Pull-Requests zu senden!). hh_client --json gibt eine leicht zu parsen Ausgabe, wenn Sie ein Plugin für Sublime Text oder Eclipse oder was auch immer Sie wollen.

Beachten Sie, dass einige Fehler Laufzeitfehler sind, während andere nicht sind. Sowohl Funktionsargumente als auch Rückgabetypen sollten zur Laufzeit Ausnahmen für den neuesten HHVM-Build auslösen. Das Problem besteht darin, dass Sie nur diese Fehler sehen, wenn Sie einen bestimmten Code-Pfad treffen. Das Schöne an Hack ist, dass es für alle Probleme in Ihrem Code Fehler macht, selbst wenn es sich um einen Code-Pfad handelt, den Sie zur Laufzeit nicht testen können.

+1

wenn Facebook IDE, die ich in der Präsentation von Hack Day sah, verfügbar sein wird? –

+3

@ b.b3rn4rd Ich arbeite nicht an den Hack/HHVM-Teams, aber soweit ich weiß, zielen sie auf das Ende des Sommers – Claudiu