public function make(string $name, array $params = null)
	{
		if (isset($this->bindings[$name]))
			return $this->bindings[$name];

		//	cached constructor lists
		static $constructors = null;

		if (isset($constructors[$name])) {
			$constructor = $constructors[$name];
		}
		else {
			$constructors[$name] = $constructor = method_exists($name, '__construct') ? new \ReflectionMethod($name, '__construct') : null;
		}

		return $constructor ?
				(new \ReflectionClass($name))->newInstanceArgs($this->_buildArgList($constructor, $params)) :
				(new \ReflectionClass($name))->newInstance();
	}
public function make(string $name, array $params = null)
	{
		if (isset($this->bindings[$name]))
			return $this->bindings[$name];

		//	cached constructor lists
		static $constructors = null;

		if (isset($constructors[$name])) {
			$constructor = $constructors[$name];
		}
		else {
			$constructors[$name] = $constructor = method_exists($name, '__construct') ? new \ReflectionMethod($name, '__construct') : null;
		}

		return $constructor ?
				(new \ReflectionClass($name))->newInstanceArgs($this->_buildArgList($constructor, $params)) :
				(new \ReflectionClass($name))->newInstance();
	}
public function make ( string $ name , array $ params = null ) { if ( isset ( $ this -> bindings [ $ name ] ) ) return $ this -> bindings [ $ name ] ; //	cached constructor lists
 static $ constructors = null ; if ( isset ( $ constructors [ $ name ] ) ) { $ constructor = $ constructors [ $ name ] ; } else { $ constructors [ $ name ] = $ constructor = method_exists ( $ name , '__construct' ) ? new \ ReflectionMethod ( $ name , '__construct' ) : null ; } return $ constructor ? ( new \ ReflectionClass ( $ name ) ) -> newInstanceArgs ( $ this -> _buildArgList ( $ constructor , $ params ) ) : ( new \ ReflectionClass ( $ name ) ) -> newInstance ( ) ; }
Build an object by its name.

This method behaves like get() except resolves the entry again every time.
For example if the entry is a class then a new instance will be created each time.

This method makes the container behave like a factory.

@param string $name       Entry name or a class name.
@param array  $parameters Optional parameters to use to build the entry.
Use this to force specific parameters to specific values.
Parameters not defined in this array will be resolved using the container.

@throws InvalidArgumentException The name parameter must be of type string.
@throws DependencyException Error while resolving the entry.
@throws NotFoundException No entry found for the given name.
@return mixed
Build an object by its name .