[TASK] Do not hide possible PHP warning from Extbase exception 53/46453/2
authorXavier Perseguers <xavier@typo3.org>
Mon, 1 Feb 2016 09:14:01 +0000 (10:14 +0100)
committerXavier Perseguers <xavier@typo3.org>
Wed, 3 Feb 2016 08:34:01 +0000 (09:34 +0100)
The Extbase ClassInfoFactory may be unable to build information for a
given class if a PHP warning occurs while running in development context.

Instead of hiding the actual exception with a generic message
"Could not analyse class: VendorName\ExtensionKey\Some\Class", it should
include the message of the corresponding exception to give useful advice
while fixing the problem.

Change-Id: I7c4b5c13b034d9a9a0d24aab84863008fbd07598
Releases: master, 7.6
Resolves: #73053
Reviewed-on: https://review.typo3.org/46453
Reviewed-by: Xavier Perseguers <xavier@typo3.org>
Tested-by: Xavier Perseguers <xavier@typo3.org>
typo3/sysext/extbase/Classes/Object/Container/ClassInfoFactory.php

index 4ffd4d1..64fc5ce 100644 (file)
@@ -34,7 +34,7 @@ class ClassInfoFactory
         try {
             $reflectedClass = new \ReflectionClass($className);
         } catch (\Exception $e) {
-            throw new \TYPO3\CMS\Extbase\Object\Container\Exception\UnknownObjectException('Could not analyse class: "' . $className . '" maybe not loaded or no autoloader?', 1289386765);
+            throw new \TYPO3\CMS\Extbase\Object\Container\Exception\UnknownObjectException('Could not analyse class: "' . $className . '" maybe not loaded or no autoloader? ' . $e->getMessage(), 1289386765, $e);
         }
         $constructorArguments = $this->getConstructorArguments($reflectedClass);
         $injectMethods = $this->getInjectMethods($reflectedClass);