original_string: 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();
  	}
code: 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();
  	}
code_tokens: 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 ( ) ; }
docstring: 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
docstring_tokens: Build an object by its name .