public function add(string $alias, Algorithm $algorithm): self
    {
        $this->algorithms[$alias] = $algorithm;

        return $this;
    }
public function add(string $alias, Algorithm $algorithm): self
    {
        $this->algorithms[$alias] = $algorithm;

        return $this;
    }
public function add ( string $ alias , Algorithm $ algorithm ) : self { $ this -> algorithms [ $ alias ] = $ algorithm ; return $ this ; }
Adds an algorithm.

Each algorithm is identified by an alias hence it is allowed to have the same algorithm twice (or more).
This can be helpful when an algorithm have several configuration options.

@return AlgorithmManagerFactory
Adds an algorithm .