Browse Source

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 16 years ago
parent
commit
b8769374ca
2 changed files with 11 additions and 0 deletions
  1. 4 0
      library/Zend/Reflection/Parameter.php
  2. 7 0
      tests/Zend/Reflection/ParameterTest.php

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

@@ -59,6 +59,10 @@ class Zend_Reflection_Parameter extends ReflectionParameter
     public function getClass($reflectionClass = 'Zend_Reflection_Class')
     public function getClass($reflectionClass = 'Zend_Reflection_Class')
     {
     {
         $phpReflection  = parent::getClass();
         $phpReflection  = parent::getClass();
+        if($phpReflection == null) {
+            return null;
+        }
+
         $zendReflection = new $reflectionClass($phpReflection->getName());
         $zendReflection = new $reflectionClass($phpReflection->getName());
         if (!$zendReflection instanceof Zend_Reflection_Class) {
         if (!$zendReflection instanceof Zend_Reflection_Class) {
             require_once 'Zend/Reflection/Exception.php';
             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);
         $parameter = new Zend_Reflection_Parameter(array('Zend_Reflection_TestSampleClass2', 'getProp2'), 0);
         $this->assertEquals(get_class($parameter->getDeclaringClass()), 'Zend_Reflection_Class');
         $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()
     public function testClassReturn()
     {
     {