![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/web-token/jwt-framework/src/Component/Core/ |
<?php declare(strict_types=1); namespace Jose\Component\Core; use InvalidArgumentException; use function array_key_exists; class AlgorithmManager { private array $algorithms = []; /** * @param Algorithm[] $algorithms */ public function __construct(array $algorithms) { foreach ($algorithms as $algorithm) { $this->add($algorithm); } } /** * Returns true if the algorithm is supported. * * @param string $algorithm The algorithm */ public function has(string $algorithm): bool { return array_key_exists($algorithm, $this->algorithms); } /** * Returns the list of names of supported algorithms. * * @return string[] */ public function list(): array { return array_keys($this->algorithms); } /** * Returns the algorithm if supported, otherwise throw an exception. * * @param string $algorithm The algorithm */ public function get(string $algorithm): Algorithm { if (! $this->has($algorithm)) { throw new InvalidArgumentException(sprintf('The algorithm "%s" is not supported.', $algorithm)); } return $this->algorithms[$algorithm]; } /** * Adds an algorithm to the manager. */ public function add(Algorithm $algorithm): void { $name = $algorithm->name(); $this->algorithms[$name] = $algorithm; } }