Class Horde_Injector
Injector class for injecting dependencies of objects
This class is responsible for injecting dependencies of objects. It is
inspired by the bucket_Container's concept of child scopes, but written to
support many different types of bindings as well as allowing for setter
injection bindings.
-
Horde_Injector
implements
Horde_Injector_Scope
Methods summary
public
|
#
__construct( Horde_Injector_Scope $injector )
Create a new injector object.
Create a new injector object.
Every injector object has a parent scope. For the very first
Horde_Injector, you should pass it a Horde_Injector_TopLevel object.
Parameters
- $injector
- The parent scope.
|
public
Horde_Injector
|
#
createChildInjector( )
Create a child injector that inherits this injector's scope.
Create a child injector that inherits this injector's scope.
All child injectors inherit the parent scope. Any objects that were
created using getInstance, will be available to the child container.
The child container can set bindings to override the parent, and none
of those bindings will leak to the parent.
Returns
|
public
Horde_Injector_Binder
|
#
__call( mixed $name, mixed $args )
Method overloader. Handles $this->bind[BinderType] type calls.
Method overloader. Handles $this->bind[BinderType] type calls.
Returns
Throws
BadMethodCallException
|
public
Horde_Injector
|
#
addBinder( string $interface, Horde_Injector_Binder $binder )
Add a Horde_Injector_Binder to an interface
Add a Horde_Injector_Binder to an interface
This is the method by which we bind an interface to a concrete
implentation or factory. For convenience, binders may be added by
$this->bind[BinderType].
bindFactory - Creates a Horde_Injector_Binder_Factory
bindImplementation - Creates a Horde_Injector_Binder_Implementation
All subsequent arguments are passed to the constructor of the
Horde_Injector_Binder object.
Parameters
- $interface
- The interface to bind to.
- $binder
- <p>The binder to be bound to the
specified $interface.</p>
Returns
|
public
Horde_Injector_Binder
|
#
getBinder( string $interface )
Get the Binder associated with the specified instance.
Get the Binder associated with the specified instance.
Binders are objects responsible for binding a particular interface
with a class. If no binding is set for this object, the parent scope is
consulted.
Parameters
- $interface
- <p>The interface to retrieve binding information
for.</p>
Returns
Implementation of
|
public
Horde_Injector
|
#
setInstance( string $interface, mixed $instance )
Set the object instance to be retrieved by getInstance the next time
the specified interface is requested.
Set the object instance to be retrieved by getInstance the next time
the specified interface is requested.
This method allows you to set the cached object instance so that all
subsequent getInstance() calls return the object you have specified.
Parameters
- $interface
- The interface to bind the instance to.
- $instance
- <p>The object instance to be bound to the
specified instance.</p>
Returns
|
public
mixed
|
#
createInstance( string $interface )
Create a new instance of the specified object/interface.
Create a new instance of the specified object/interface.
This method creates a new instance of the specified object/interface.
NOTE: it does not save that instance for later retrieval. If your
object should be re-used elsewhere, you should be using getInstance().
Parameters
- $interface
- <p>The interface name, or object class to be
created.</p>
Returns
mixed A new object that implements $interface.
|
public
mixed
|
#
getInstance( string $interface )
Retrieve an instance of the specified object/interface.
Retrieve an instance of the specified object/interface.
This method gets you an instance, and saves a reference to that
instance for later requests.
Interfaces must be bound to a concrete class to be created this way.
Concrete instances may be created through reflection.
It does not gaurantee that it is a new instance of the object. For a
new instance see createInstance().
Parameters
- $interface
- <p>The interface name, or object class to be
created.</p>
Returns
mixed An object that implements $interface, but not
necessarily a new one.
Implementation of
|
public
boolean
|
#
hasInstance( string $interface )
Has the interface for the specified object/interface been created yet?
Has the interface for the specified object/interface been created yet?
Parameters
- $interface
- The interface name or object class.
Returns
boolean True if the instance already has been created.
|