From c2a155b945bd4fad196da021db635ede3eafc5d6 Mon Sep 17 00:00:00 2001 From: Chuck Hagenbuch Date: Mon, 26 Apr 2010 11:46:29 -0400 Subject: [PATCH] Remove Horde_Injector filters after more consideration. --- framework/Injector/lib/Horde/Injector.php | 27 +-------- framework/Injector/lib/Horde/Injector/Filter.php | 20 ------- .../Injector/Filter/AnnotatedSetterInjector.php | 67 ---------------------- framework/Injector/package.xml | 6 -- .../Filter/AnnotatedSetterInjectorTest.php | 43 -------------- 5 files changed, 1 insertion(+), 162 deletions(-) delete mode 100644 framework/Injector/lib/Horde/Injector/Filter.php delete mode 100644 framework/Injector/lib/Horde/Injector/Filter/AnnotatedSetterInjector.php delete mode 100644 framework/Injector/test/Horde/Injector/Filter/AnnotatedSetterInjectorTest.php diff --git a/framework/Injector/lib/Horde/Injector.php b/framework/Injector/lib/Horde/Injector.php index 77fe90bb7..e2d377140 100644 --- a/framework/Injector/lib/Horde/Injector.php +++ b/framework/Injector/lib/Horde/Injector.php @@ -16,7 +16,6 @@ class Horde_Injector implements Horde_Injector_Scope { private $_parentInjector; private $_bindings = array(); - private $_filters = array(); private $_instances; /** @@ -198,11 +197,7 @@ class Horde_Injector implements Horde_Injector_Scope */ public function createInstance($interface) { - $instance = $this->getBinder($interface)->create($this); - if ($instance) { - $this->runFilters($instance); - } - return $instance; + return $this->getBinder($interface)->create($this); } /** @@ -269,24 +264,4 @@ class Horde_Injector implements Horde_Injector_Scope throw new Horde_Injector_Exception("Untyped parameter \$" . $parameter->getName() . "can't be fulfilled"); } - - /** - * Add an object creation filter - */ - public function addFilter(Horde_Injector_Filter $filter) - { - $this->_filters[] = $filter; - } - - /** - * Run object creation filters on a new object - * - * @param object $instance The new instance to filter. - */ - public function runFilters($instance) - { - foreach ($this->_filters as $filter) { - $filter->filter($this, $instance); - } - } } diff --git a/framework/Injector/lib/Horde/Injector/Filter.php b/framework/Injector/lib/Horde/Injector/Filter.php deleted file mode 100644 index 267d483b9..000000000 --- a/framework/Injector/lib/Horde/Injector/Filter.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @author James Pepin - * @author Chuck Hagenbuch - * @category Horde - * @package Horde_Injector - */ -interface Horde_Injector_Filter -{ - /** - * @param Horde_Injector $injector The active Horde_Injector - * @param object $instance The new instance to filter - * - * @return void - */ - public function filter(Horde_Injector $injector, $instance); -} diff --git a/framework/Injector/lib/Horde/Injector/Filter/AnnotatedSetterInjector.php b/framework/Injector/lib/Horde/Injector/Filter/AnnotatedSetterInjector.php deleted file mode 100644 index 4abb760d8..000000000 --- a/framework/Injector/lib/Horde/Injector/Filter/AnnotatedSetterInjector.php +++ /dev/null @@ -1,67 +0,0 @@ - - * @author James Pepin - * @author Chuck Hagenbuch - * @category Horde - * @package Horde_Injector - */ -class Horde_Injector_Filter_AnnotatedSetterInjector implements Horde_Injector_Filter -{ - /** - * @var Horde_Injector_DependencyFinder - */ - protected $_dependencyFinder; - - /** - * Inspect the object's class docblock for @inject annotations, and fill - * those objects in through their setter methods. - * - * @param object $instance The object to do setter injection on. - */ - public function filter(Horde_Injector $injector, $instance) - { - $reflectionClass = new ReflectionClass($instance); - $setters = $this->_findSetters($reflectionClass); - $this->_callSetters($injector, $instance, $setters); - } - - /** - * Find annotated setters in the class docblock - * - * @param ReflectionClass $reflectionClass - * - * @return array - */ - private function _findSetters(ReflectionClass $reflectionClass) - { - $setters = array(); - $docBlock = $reflectionClass->getDocComment(); - if ($docBlock) { - if (preg_match_all('/@inject (\w+)/', $docBlock, $matches)) { - foreach ($matches[1] as $setter) { - $setters[] = $setter; - } - } - } - - return $setters; - } - - /** - * TODO - */ - private function _callSetters(Horde_Injector $injector, $instance, $setters) - { - foreach ($setters as $setter) { - $reflectionMethod = new ReflectionMethod($instance, $setter); - $reflectionMethod->invokeArgs( - $instance, - $injector->getMethodDependencies($reflectionMethod) - ); - } - } -} diff --git a/framework/Injector/package.xml b/framework/Injector/package.xml index 5fc1d6764..7b77ebc29 100644 --- a/framework/Injector/package.xml +++ b/framework/Injector/package.xml @@ -63,12 +63,8 @@ - - - - @@ -108,13 +104,11 @@ - - diff --git a/framework/Injector/test/Horde/Injector/Filter/AnnotatedSetterInjectorTest.php b/framework/Injector/test/Horde/Injector/Filter/AnnotatedSetterInjectorTest.php deleted file mode 100644 index aaaa8598e..000000000 --- a/framework/Injector/test/Horde/Injector/Filter/AnnotatedSetterInjectorTest.php +++ /dev/null @@ -1,43 +0,0 @@ -createInstance('Horde_Injector_TestFoo'); - $this->assertNull($foo1->bar); - - $injector->addFilter(new Horde_Injector_Filter_AnnotatedSetterInjector()); - $foo2 = $injector->createInstance('Horde_Injector_TestFoo'); - $this->assertType('Horde_Injector_TestBar', $foo2->bar); - } - - public function testAnnotatedSettersAreThereWhenCallingGetInstanceAgain() - { - $injector = new Horde_Injector(new Horde_Injector_TopLevel()); - $injector->addFilter(new Horde_Injector_Filter_AnnotatedSetterInjector()); - $foo1 = $injector->getInstance('Horde_Injector_TestFoo'); - - $foo2 = $injector->getInstance('Horde_Injector_TestFoo'); - $this->assertType('Horde_Injector_TestBar', $foo2->bar); - } -} - -/** - * Used by the preceding tests - * - * @inject setBar - */ -class Horde_Injector_TestFoo -{ - public $bar; - - public function setBar(Horde_Injector_TestBar $bar) - { - $this->bar = $bar; - } -} - -class Horde_Injector_TestBar -{ -} -- 2.11.0