Verzeichnisstruktur phpBB-3.3.15
- Veröffentlicht
- 28.08.2024
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
SignatureChecker.php
01 <?php
02
03 declare(strict_types=1);
04
05 namespace ProxyManager\Signature;
06
07 use ProxyManager\Signature\Exception\InvalidSignatureException;
08 use ProxyManager\Signature\Exception\MissingSignatureException;
09 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 }
55