Changeset 313
- Timestamp:
- 03/01/07 16:09:04 (2 years ago)
- Files:
-
- trunk/src/main/php/net/stubbles/ioc/injection/injection.php (modified) (1 diff)
- trunk/src/main/php/net/stubbles/ioc/injection/stubInjectAnnotation.php (modified) (4 diffs)
- trunk/src/main/php/net/stubbles/ioc/injection/stubInjectionMap.php (modified) (2 diffs)
- trunk/src/main/php/net/stubbles/ioc/injection/stubInjectionProvider.php (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/main/php/net/stubbles/ioc/injection/injection.php
r310 r313 8 8 */ 9 9 stubClassLoader::load('net.stubbles.ioc.injection.stubInjectionException', 10 'net.stubbles.ioc.injection.stubInjectionProvider', 10 11 'net.stubbles.ioc.injection.stubInjectionMap', 11 12 'net.stubbles.ioc.injection.stubInjectionAnnotation' trunk/src/main/php/net/stubbles/ioc/injection/stubInjectAnnotation.php
r310 r313 59 59 * processes all injections 60 60 * 61 * @param stubReflectionClass $refClass the reflection class for $injectible62 * @param stubInjection Map $injectionMapmap of values to inject63 * @param object $injectible the class to inject into61 * @param stubReflectionClass $refClass the reflection class for $injectible 62 * @param stubInjectionProvider $injectionProvider map of values to inject 63 * @param object $injectible the class to inject into 64 64 * @throws stubInjectionException 65 65 */ 66 protected function handleInjections(stubReflectionClass $refClass, stubInjection Map $injectionMap, $injectible)66 protected function handleInjections(stubReflectionClass $refClass, stubInjectionProvider $injectionProvider, $injectible) 67 67 { 68 68 foreach ($this->injections as $injection) { 69 if ($injection Map->hasInjection($injection) == false) {69 if ($injectionProvider->hasInjection($injection) == false) { 70 70 throw new stubInjectionException('Injectible needs ' . $injection . ' but it was not given in list of injected classes.'); 71 71 } … … 74 74 if ($refClass->hasMethod($methodName) == true && $refClass->getMethod($methodName)->isPublic() == true) { 75 75 try { 76 $refClass->getMethod($methodName)->invoke($injectible, $injection Map->getInjection($injection));76 $refClass->getMethod($methodName)->invoke($injectible, $injectionProvider->getInjection($injection)); 77 77 } catch (ReflectionException $re) { 78 78 throw new stubInjectionException('Could not inject ' . $injection . ': ' . $re->getMessage()); 79 79 } 80 80 } elseif ($refClass->hasProperty($injection) == true && $refClass->getProperty($injection)->isPublic() == true) { 81 $refClass->getProperty($injection)->setValue($injectible, $injection Map->getInjection($injection));81 $refClass->getProperty($injection)->setValue($injectible, $injectionProvider->getInjection($injection)); 82 82 } elseif ($refClass->hasMethod('__set') == true && $refClass->getMethod('__set')->isPublic() == true) { 83 $refClass->getMethod('__set')->invoke($injectible, $injection, $injection Map->getInjection($injection));83 $refClass->getMethod('__set')->invoke($injectible, $injection, $injectionProvider->getInjection($injection)); 84 84 } else { 85 85 throw new stubInjectionException('Given injectible has no method or property that accepts injection ' . $injection); … … 91 91 * static call to hide all injection details 92 92 * 93 * @param InjectionMap $injectionMapmap of values to inject94 * @param object $injectible the class to inject into93 * @param stubInjectionProvider $injectionProvider map of values to inject 94 * @param object $injectible the class to inject into 95 95 * @throws stubInjectionException 96 96 */ 97 public static function factory(stubInjection Map $injectionMap, $injectible)97 public static function factory(stubInjectionProvider $injectionProvider, $injectible) 98 98 { 99 99 if (is_object($injectible) == false) { … … 104 104 if ($refClass->hasAnnotation('Inject') == true) { 105 105 $inject = $refClass->getAnnotation('Inject'); 106 $inject->handleInjections($refClass, $injection Map, $injectible);106 $inject->handleInjections($refClass, $injectionProvider, $injectible); 107 107 } 108 108 } trunk/src/main/php/net/stubbles/ioc/injection/stubInjectionMap.php
r307 r313 7 7 * @subpackage ioc_injection 8 8 */ 9 stubClassLoader::load('net.stubbles.ioc.injection.stubInjectionProvider'); 9 10 /** 10 11 * Map for injections. … … 13 14 * @subpackage ioc_injection 14 15 */ 15 class stubInjectionMap extends stubBaseObject 16 class stubInjectionMap extends stubBaseObject implements stubInjectionProvider 16 17 { 17 18 /**
