2017-02-07 3 views
0

Ich versuche, eine Schnittstelle von reflectionMethods für eine meiner Klassen zu machen, und ich habe ein Problem, wo die Methode getDocComments() auf meinem fehlschlägt Staging-Umgebung.ReflectionMethod-> getDocComment() scheint nicht auf PHP 5.5 zu arbeiten

Hier ist der Testcode ist ich benutze:

<?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; 

Auf meiner Staging-Umgebung, ist $ Docblock leer (auf false, wenn ich var_dump() it). Die PHP-Version, die ich in der Staging-Umgebung habe, ist PHP Version 5.5.30-1~dotdeb+7.1. Auf meiner lokalen Umgebung, mit PHP Version 5.6.27-0+deb8u1, scheint es zu funktionieren.

Das Problem kann sehr spezifisch für meine Umgebung sein, ich bin jedoch nicht in der Lage, es auf jedem online php Tester zu reproduzieren Ich habe es mit PHPTester und Online PHP Functions getestet, die erlauben, mit mehreren Versionen von PHP zu testen, aber keiner hatte die genaue Version, die ich in meiner Umgebung haben

Antwort

1

Ok, es scheint Zend OPcache wurde auf dieser Umgebung aktiviert, mit diesen Parametern.

; 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 

mit opcache.save_comments auf 0 gesetzt, alle Kommentare (einschließlich Docblocks) sind entfernt, daher nicht lesbar

Verwandte Themen