public function bind($typeName)
	{
		if($this->proxyTypes !== NULL)
		{
			$this->proxyTypes = NULL;
		}
		
		$key = strtolower($typeName);
		
		switch($key)
		{
			case 'koolkode\config\configuration':
			case 'koolkode\context\containerinterface':
			case 'koolkode\context\exposedcontainerinterface':
			case 'koolkode\context\scope\scopedcontainerinterface':
				throw new \InvalidArgumentException(sprintf('Binding %s is forbidden', $typeName));
		}
		
		if(isset($this->bindings[$key]))
		{
			return $this->bindings[$key];
		}
		
		return $this->bindings[$key] = new Binding($typeName);
	}
public function bind($typeName)
	{
		if($this->proxyTypes !== NULL)
		{
			$this->proxyTypes = NULL;
		}
		
		$key = strtolower($typeName);
		
		switch($key)
		{
			case 'koolkode\config\configuration':
			case 'koolkode\context\containerinterface':
			case 'koolkode\context\exposedcontainerinterface':
			case 'koolkode\context\scope\scopedcontainerinterface':
				throw new \InvalidArgumentException(sprintf('Binding %s is forbidden', $typeName));
		}
		
		if(isset($this->bindings[$key]))
		{
			return $this->bindings[$key];
		}
		
		return $this->bindings[$key] = new Binding($typeName);
	}
public function bind ( $ typeName ) { if ( $ this -> proxyTypes !== NULL ) { $ this -> proxyTypes = NULL ; } $ key = strtolower ( $ typeName ) ; switch ( $ key ) { case 'koolkode\config\configuration' : case 'koolkode\context\containerinterface' : case 'koolkode\context\exposedcontainerinterface' : case 'koolkode\context\scope\scopedcontainerinterface' : throw new \ InvalidArgumentException ( sprintf ( 'Binding %s is forbidden' , $ typeName ) ) ; } if ( isset ( $ this -> bindings [ $ key ] ) ) { return $ this -> bindings [ $ key ] ; } return $ this -> bindings [ $ key ] = new Binding ( $ typeName ) ; }
Create a binding for the given type, the binding is registered in the builder
and will be bound by the created DI container, binding multiple times to the same type
will modify the existing binding instead of creating a new binding!

@return Binding
Create a binding for the given type the binding is registered in the builder and will be bound by the created DI container binding multiple times to the same type will modify the existing binding instead of creating a new binding!