2017-02-07 8 views
0

reflectionMethods에서 내 클래스 중 하나에 대한 인터페이스를 만들려고하는데 getDocComments() 메서드가 실패한 곳에서 문제가 발생했습니다. 준비 환경. 여기 ReflectionMethod-> getDocComment()가 PHP 5.5에서 작동하지 않는 것 같습니다.

내가 사용하는 테스트 코드입니다 : 내 스테이징 환경에

<?php 

class foo 
{ 
    /** 
    * Method bar description 
    * 
    * @param string $param1 
    * @param int $param2 
    * @return array 
    */ 
    public static function bar($param1, $param2 = 0) 
    { 
     return array(); 
    } 
} 

$r  = new ReflectionMethod('foo', 'bar'); 
$docBlock = $r->getDocComment(); 

echo $docBlock; 

, $ docBlock는 빈 (내가 위해서 var_dump 경우는 false로 설정()을)입니다. 준비 환경의 PHP 버전은 PHP Version 5.5.30-1~dotdeb+7.1입니다. 내 로컬 환경에서 PHP Version 5.6.27-0+deb8u1으로 작동하는 것 같습니다.

이 문제는 내 환경에 따라 매우 다를 수 있지만 필자가 발견 한 온라인 PHP 테스터에서 재현 할 수는 없습니다 (여러 버전의 PHP를 테스트 할 수있는 PHPTesterOnline PHP Functions으로 테스트했지만 아무도 없었습니다 내 환경에 내가 가지고있는 정확한 버전

답변

1

좋아, 그것은 젠드 OPcache 이러한 매개 변수와 함께,이 환경에 활성화 된 것 같다. (docBlocks 포함)

; If disabled, all PHPDoc comments are dropped from the code to reduce the 
; size of the optimized code. 
opcache.save_comments=0 

; If disabled, PHPDoc comments are not loaded from SHM, so "Doc Comments" 
; may be always stored (save_comments=1), but not loaded by applications 
; that don't need them anyway. 
;opcache.load_comments=1 

세트 opcache.save_comments로를 0으로, 모든 의견입니다 따라서 읽을 수 없습니다.