Actions
Bug #59868
closedEM does not properly resolve dependencies
Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2014-06-25
Due date:
% Done:
0%
Estimated time:
TYPO3 Version:
6.2
PHP Version:
Tags:
Complexity:
Is Regression:
No
Sprint Focus:
Description
How to reproduce:
- Manually download EXT:yag
- Ensure you don't have the dependencies locally
- Activate EXT:yag
Class Tx_PtExtbase_Utility_FeBeModeDetector does not exist
15 ReflectionParameter::getClass() /path/to/typo3/sysext/extbase/Classes/Object/Container/ClassInfoFactory.php: 00089: $reflectionParameter = $reflectionMethod->getParameters(); 00090: if (isset($reflectionParameter[0])) { 00091: if (!$reflectionParameter[0]->getClass()) { 00092: throw new \Exception('Method "' . $reflectionMethod->getName() . '" of class "' . $reflectedClass->getName() . '" is marked as setter for Dependency Injection, but does not have a type annotation'); 00093: } 14 TYPO3\CMS\Extbase\Object\Container\ClassInfoFactory::getInjectMethods(ReflectionClass) /path/to/typo3/sysext/extbase/Classes/Object/Container/ClassInfoFactory.php: 00038: } 00039: $constructorArguments = $this->getConstructorArguments($reflectedClass); 00040: $injectMethods = $this->getInjectMethods($reflectedClass); 00041: $injectProperties = $this->getInjectProperties($reflectedClass); 00042: $isSingleton = $this->getIsSingleton($className); 13 TYPO3\CMS\Extbase\Object\Container\ClassInfoFactory::buildClassInfoFromClassName("Tx_Yag_Utility_PidDetector") /path/to/typo3/sysext/extbase/Classes/Object/Container/Container.php: 00309: $classInfo = $this->getClassInfoCache()->get($classNameHash); 00310: if (!$classInfo instanceof \TYPO3\CMS\Extbase\Object\Container\ClassInfo) { 00311: $classInfo = $this->getClassInfoFactory()->buildClassInfoFromClassName($className); 00312: $this->getClassInfoCache()->set($classNameHash, $classInfo); 00313: } 12 TYPO3\CMS\Extbase\Object\Container\Container::getClassInfo("Tx_Yag_Utility_PidDetector") /path/to/typo3/sysext/extbase/Classes/Object/Container/Container.php: 00151: return $this->singletonInstances[$className]; 00152: } 00153: $classInfo = $this->getClassInfo($className); 00154: $classIsSingleton = $classInfo->getIsSingleton(); 00155: if (!$classIsSingleton) { 11 TYPO3\CMS\Extbase\Object\Container\Container::getInstanceInternal("Tx_Yag_Utility_PidDetector") /path/to/typo3/sysext/extbase/Classes/Object/Container/Container.php: 00207: } 00208: foreach ($classInfo->getInjectMethods() as $injectMethodName => $classNameToInject) { 00209: $instanceToInject = $this->getInstanceInternal($classNameToInject); 00210: if ($classInfo->getIsSingleton() && !$instanceToInject instanceof \TYPO3\CMS\Core\SingletonInterface) { 00211: $this->log('The singleton "' . $classInfo->getClassName() . '" needs a prototype in "' . $injectMethodName . '". This is often a bad code smell; often you rather want to inject a singleton.', 1); 10 TYPO3\CMS\Extbase\Object\Container\Container::injectDependencies(Tx_Yag_Extbase_Persistence_Backend, TYPO3\CMS\Extbase\Object\Container\ClassInfo)
Actions