[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 declare(strict_types=1); 4 5 /* 6 * The MIT License (MIT) 7 * 8 * Copyright (c) 2014-2020 Spomky-Labs 9 * 10 * This software may be modified and distributed under the terms 11 * of the MIT license. See the LICENSE file for details. 12 */ 13 14 namespace Jose\Component\Core; 15 16 use function array_key_exists; 17 use InvalidArgumentException; 18 19 class AlgorithmManager 20 { 21 /** 22 * @var array 23 */ 24 private $algorithms = []; 25 26 /** 27 * @param Algorithm[] $algorithms 28 */ 29 public function __construct(array $algorithms) 30 { 31 foreach ($algorithms as $algorithm) { 32 $this->add($algorithm); 33 } 34 } 35 36 /** 37 * Returns true if the algorithm is supported. 38 * 39 * @param string $algorithm The algorithm 40 */ 41 public function has(string $algorithm): bool 42 { 43 return array_key_exists($algorithm, $this->algorithms); 44 } 45 46 /** 47 * Returns the list of names of supported algorithms. 48 * 49 * @return string[] 50 */ 51 public function list(): array 52 { 53 return array_keys($this->algorithms); 54 } 55 56 /** 57 * Returns the algorithm if supported, otherwise throw an exception. 58 * 59 * @param string $algorithm The algorithm 60 * 61 * @throws InvalidArgumentException if the algorithm is not supported 62 */ 63 public function get(string $algorithm): Algorithm 64 { 65 if (!$this->has($algorithm)) { 66 throw new InvalidArgumentException(sprintf('The algorithm "%s" is not supported.', $algorithm)); 67 } 68 69 return $this->algorithms[$algorithm]; 70 } 71 72 /** 73 * Adds an algorithm to the manager. 74 */ 75 public function add(Algorithm $algorithm): void 76 { 77 $name = $algorithm->name(); 78 $this->algorithms[$name] = $algorithm; 79 } 80 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |