[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/ocramius/proxy-manager/src/ProxyManager/Signature/ -> SignatureChecker.php (source)

   1  <?php
   2  
   3  declare(strict_types=1);
   4  
   5  namespace ProxyManager\Signature;
   6  
   7  use ProxyManager\Signature\Exception\InvalidSignatureException;
   8  use ProxyManager\Signature\Exception\MissingSignatureException;
   9  use ReflectionClass;
  10  
  11  /**
  12   * Generator for signatures to be used to check the validity of generated code
  13   *
  14   * @author Marco Pivetta <ocramius@gmail.com>
  15   * @license MIT
  16   */
  17  final class SignatureChecker implements SignatureCheckerInterface
  18  {
  19      /**
  20       * @var SignatureGeneratorInterface
  21       */
  22      private $signatureGenerator;
  23  
  24      /**
  25       * @param SignatureGeneratorInterface $signatureGenerator
  26       */
  27      public function __construct(SignatureGeneratorInterface $signatureGenerator)
  28      {
  29          $this->signatureGenerator = $signatureGenerator;
  30      }
  31  
  32      /**
  33       * {@inheritDoc}
  34       */
  35      public function checkSignature(ReflectionClass $class, array $parameters)
  36      {
  37          $propertyName      = 'signature' . $this->signatureGenerator->generateSignatureKey($parameters);
  38          $signature         = $this->signatureGenerator->generateSignature($parameters);
  39          $defaultProperties = $class->getDefaultProperties();
  40  
  41          if (! \array_key_exists($propertyName, $defaultProperties)) {
  42              throw MissingSignatureException::fromMissingSignature($class, $parameters, $signature);
  43          }
  44  
  45          if ($defaultProperties[$propertyName] !== $signature) {
  46              throw InvalidSignatureException::fromInvalidSignature(
  47                  $class,
  48                  $parameters,
  49                  $defaultProperties[$propertyName],
  50                  $signature
  51              );
  52          }
  53      }
  54  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1