Explorar el Código

ZF-7782 - Fix fatal error when calling getClass() on Zend_Reflection_Parameter and no type-hint class is set for this parameter.

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@17995 44c647ce-9c0f-0410-b52a-842ac1e357ba
beberlei hace 16 años
padre
commit
b8769374ca

+ 4 - 0
library/Zend/Reflection/Parameter.php

@@ -59,6 +59,10 @@ class Zend_Reflection_Parameter extends ReflectionParameter
     public function getClass($reflectionClass = 'Zend_Reflection_Class')
     {
         $phpReflection  = parent::getClass();
+        if($phpReflection == null) {
+            return null;
+        }
+
         $zendReflection = new $reflectionClass($phpReflection->getName());
         if (!$zendReflection instanceof Zend_Reflection_Class) {
             require_once 'Zend/Reflection/Exception.php';

+ 7 - 0
tests/Zend/Reflection/ParameterTest.php

@@ -58,6 +58,13 @@ class Zend_Reflection_ParameterTest extends PHPUnit_Framework_TestCase
         $parameter = new Zend_Reflection_Parameter(array('Zend_Reflection_TestSampleClass2', 'getProp2'), 0);
         $this->assertEquals(get_class($parameter->getDeclaringClass()), 'Zend_Reflection_Class');
     }
+
+    public function testClassReturn_NoClassGiven_ReturnsNull()
+    {
+        $parameter = new Zend_Reflection_Parameter(array('Zend_Reflection_TestSampleClass2', 'getProp2'), 'param1');
+
+        $this->assertNull($parameter->getClass());
+    }
     
     public function testClassReturn()
     {