[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/vendor/web-token/jwt-core/ -> AlgorithmManager.php (source)

   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  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer