2014-04-10 12 views
5

Esiste un modo per dire a HHVM uscita Hacklang avvisi e gli errori nel browser? Qualcosa di simile a PHP non abilitato con display_errors, display_startup_errors e error_reporting insieme a E_ALL versioneHHVM + Hacklang: uscita errori/avvisi nel browser

HHVM:

$ php -v 

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

Ho provato la seguente configurazione:

$ 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 

E:

$ 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 
+0

penso 'definisce fastcgi', che solo stdout viene mostrato sulla pagina. stderr viene scritto direttamente nel file di errore-log. – PKeidel

risposta

3

tl; dr: Puoi 'T.

La cosa da tenere a mente è che coontrollore dei tipo fa un analisi statica del codice, mentre gli errori di PHP si parla di mostra fino a runtime. Se questo è stato C++, si potrebbe paragonare gli errori coontrollore dei tipo Hack con gli errori durante la fase di compilazione - in modo Hack ti dice le cose che sono sbagliate prima che il codice viene eseguito, anche.

Il trucco è quello di utilizzare le vim or emacs plugin che si avvertono di errori, come si salva il file, o utilizzare hh_client dal terminale, o costruire un plugin per il vostro IDE preferito (sentitevi liberi di inviare richieste di pull!). hh_client --json dà un facile da analizzare output se si vuole costruire un plugin per Sublime Text, o Eclipse o quello che volete.

Nota che alcuni errori sono errori di runtime, mentre alcuni non lo sono. Le funzioni args così come i tipi restituiti dovrebbero generare eccezioni in fase di esecuzione per la build HHVM più recente, ad esempio. Il problema è che vedi solo quegli errori quando colpisci un determinato percorso di codice. La bellezza di Hack è che commette errori per tutti i problemi del codice, anche se si tratta di un percorso di codice che non è possibile testare in fase di esecuzione.

+1

quando l'IDE di facebook che ho visto nella presentazione di Hack Day sarà disponibile? –

+3

@ b.b3rn4rd Non lavoro sui team Hack/HHVM, ma per quanto ne so stanno puntando alla fine dell'estate – Claudiu