2014-04-10 3 views
5

브라우저에 Hacklang 경고 및 오류를 출력하도록 HHVM에 지시 할 수있는 방법이 있습니까?HHVM + Hacklang : 오류/경고가 브라우저에 출력됩니다.

$ 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 
나는 다음과 같은 설정을 시도했습니다

$ php -v 

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

: PHP와 같은 뭔가 display_startup_errorserror_reporting 세트

HHVM 버전 E_ALL에, display_errors 활성화와 함께 않습니다

+0

'fastcgi'은 페이지에 stdout 만 표시된다는 것을 정의한다고 생각합니다. stderr은 오류 로그 파일에 직접 기록됩니다. – PKeidel

답변

3

tl; dr : '티.

여기에 유의해야 할 점은 typechecker가 런타임에 표시되는 PHP 오류가있는 동안 코드의 정적 분석을 수행한다는 것입니다. 이것이 C++ 인 경우 컴파일 단계에서 해킹 유형 검사기 오류와 오류를 비교할 수 있습니다. 따라서 코드가 실행되기 전에 해킹이 잘못되었음을 알려줍니다.

트릭은 파일을 저장할 때 오류를 경고하는 플러그인 vim or emacs을 사용하거나 터미널에서 hh_client을 사용하거나 좋아하는 IDE 용 플러그인을 만듭니다 (풀 요청을 보내주십시오!). hh_client --json은 Sublime Text 또는 Eclipse 또는 원하는대로 플러그인을 작성하려는 경우 쉽게 구문 분석 결과를 제공합니다.

일부 오류는 런타임 오류이지만 일부 오류는 런타임 오류입니다. 함수 타입과 리턴 타입은 런타임에서 예를 들어 최신 HHVM 빌드를 위해 예외를 던져야합니다. 문제는 특정 코드 경로에 도달했을 때 그 오류 만 볼 수 있다는 것입니다. 해킹의 장점은 런타임시 테스트하지 못할 수도있는 코드 경로 일지라도 코드의 모든 문제에 대해 오류가 발생한다는 것입니다.

+1

에서 해킹 당일 프레젠테이션에서 본 페이스 북 IDE를 사용할 수 있습니까? –

+3

@ b.b3rn4rd Hack/HHVM 팀에서는 작동하지 않지만, 그들이 알고있는 한 여름이 끝나기를 목표로합니다. – Claudiu