protected function invokeBindingInitializers($typeName, $object, $initializers = NULL)
	{
		foreach((array)$initializers as $initializer)
		{
			if(is_array($initializer))
			{
				$ref = new \ReflectionMethod(is_object($initializer[0]) ? get_class($initializer[0]) : $initializer[0], $initializer[1]);
			}
			else
			{
				$ref = new \ReflectionFunction($initializer);
			}
	
			$args = $this->populateArguments($ref, 1, [], new InjectionPoint($typeName, $ref->name));
				
			switch(count($args))
			{
				case 0:
					$object = $initializer($object) ?: $object;
					break;
				case 1:
					$object = $initializer($object, $args[0]) ?: $object;
					break;
				case 2:
					$object = $initializer($object, $args[0], $args[1]) ?: $object;
					break;
				case 3:
					$object = $initializer($object, $args[0], $args[1], $args[2]) ?: $object;
					break;
				case 4:
					$object = $initializer($object, $args[0], $args[1], $args[2], $args[3]) ?: $object;
					break;
				default:
					$object = call_user_func_array($initializer, array_merge([$object], $args)) ?: $object;
			}
		}
		
		return $object;
	}
protected function invokeBindingInitializers($typeName, $object, $initializers = NULL)
	{
		foreach((array)$initializers as $initializer)
		{
			if(is_array($initializer))
			{
				$ref = new \ReflectionMethod(is_object($initializer[0]) ? get_class($initializer[0]) : $initializer[0], $initializer[1]);
			}
			else
			{
				$ref = new \ReflectionFunction($initializer);
			}
	
			$args = $this->populateArguments($ref, 1, [], new InjectionPoint($typeName, $ref->name));
				
			switch(count($args))
			{
				case 0:
					$object = $initializer($object) ?: $object;
					break;
				case 1:
					$object = $initializer($object, $args[0]) ?: $object;
					break;
				case 2:
					$object = $initializer($object, $args[0], $args[1]) ?: $object;
					break;
				case 3:
					$object = $initializer($object, $args[0], $args[1], $args[2]) ?: $object;
					break;
				case 4:
					$object = $initializer($object, $args[0], $args[1], $args[2], $args[3]) ?: $object;
					break;
				default:
					$object = call_user_func_array($initializer, array_merge([$object], $args)) ?: $object;
			}
		}
		
		return $object;
	}
protected function invokeBindingInitializers ( $ typeName , $ object , $ initializers = NULL ) { foreach ( ( array ) $ initializers as $ initializer ) { if ( is_array ( $ initializer ) ) { $ ref = new \ ReflectionMethod ( is_object ( $ initializer [ 0 ] ) ? get_class ( $ initializer [ 0 ] ) : $ initializer [ 0 ] , $ initializer [ 1 ] ) ; } else { $ ref = new \ ReflectionFunction ( $ initializer ) ; } $ args = $ this -> populateArguments ( $ ref , 1 , [ ] , new InjectionPoint ( $ typeName , $ ref -> name ) ) ; switch ( count ( $ args ) ) { case 0 : $ object = $ initializer ( $ object ) ? : $ object ; break ; case 1 : $ object = $ initializer ( $ object , $ args [ 0 ] ) ? : $ object ; break ; case 2 : $ object = $ initializer ( $ object , $ args [ 0 ] , $ args [ 1 ] ) ? : $ object ; break ; case 3 : $ object = $ initializer ( $ object , $ args [ 0 ] , $ args [ 1 ] , $ args [ 2 ] ) ? : $ object ; break ; case 4 : $ object = $ initializer ( $ object , $ args [ 0 ] , $ args [ 1 ] , $ args [ 2 ] , $ args [ 3 ] ) ? : $ object ; break ; default : $ object = call_user_func_array ( $ initializer , array_merge ( [ $ object ] , $ args ) ) ? : $ object ; } } return $ object ; }
Invoke all passed initializers for the given object.

@param object $object The object to be initialized.
@param string $initializers Initializers to be called.
@return object Returns the passed object instance.
Invoke all passed initializers for the given object .