Overview

Packages

  • Injector

Classes

  • Horde_Injector
  • Horde_Injector_Binder_AnnotatedSetters
  • Horde_Injector_Binder_Closure
  • Horde_Injector_Binder_Factory
  • Horde_Injector_Binder_Implementation
  • Horde_Injector_DependencyFinder
  • Horde_Injector_Exception
  • Horde_Injector_TopLevel

Interfaces

  • Horde_Injector_Binder
  • Horde_Injector_Scope
  • Overview
  • Package
  • Class
  • Tree

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
Package: Injector
Category: Horde
Author: Bob Mckee bmckee@bywires.com
Author: James Pepin james@jamespepin.com
Located at Horde/Injector.php
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

Horde_Injector
A child injector with $this as its parent.
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

Horde_Injector_Binder
See _bind().

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

Horde_Injector
A reference to itself for method chaining.
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

Horde_Injector_Binder

The binding set for the specified interface.

Implementation of

Horde_Injector_Scope::getBinder()
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

Horde_Injector
A reference to itself for method chaining.
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

Horde_Injector_Scope::getInstance()
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.
API documentation generated by ApiGen