\Horde_Injector_Binder_Closure

A binder object for binding an interface to a closure.

An interface may be bound to a closure. That closure must accept a Horde_Injector and return an object that satisfies the instance requirement. For example:

$injector->bindClosure('database', function($injector) { return new my_mysql(); });

Summary

Methods
Properties
Constants
__construct()
equals()
getClosure()
create()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
$_closure
N/A

Properties

Methods

__construct()

__construct(string  $closure) 

Create a new Horde_Injector_Binder_Closure instance.

Parameters

string $closure

The closure to use for creating objects.

equals()

equals(\Horde_Injector_Binder  $otherBinder) : boolean

Determine if one binder equals another binder

Parameters

\Horde_Injector_Binder $otherBinder

Returns

boolean —

Equality.

getClosure()

getClosure() : callable

Get the closure that this binder was bound to.

Returns

callable —

The closure this binder is bound to.

create()

create(\Horde_Injector  $injector) : \Horde_Injector

Create instance using a closure.

If the closure depends on a Horde_Injector we want to limit its scope so it cannot change anything that effects any higher-level scope. A closure should not have the responsibility of making a higher-level scope change. To enforce this we create a new child Horde_Injector. When a Horde_Injector is requested from a Horde_Injector it will return itself. This means that the closure will only ever be able to work on the child Horde_Injector we give it now.

Parameters

\Horde_Injector $injector

Injector object.

Returns

\Horde_Injector