[ Index ] |
PHP Cross Reference of phpBB-3.3.14-deutsch |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Mon Nov 25 19:05:08 2024 | Cross-referenced by PHPXref 0.7.1 |