parser = new Token\Parser($decoder); $this->validator = new Validation\Validator(); $this->builderFactory = static function (ClaimsFormatter $claimFormatter) use ($encoder): Builder { return new Token\Builder($encoder, $claimFormatter); }; } public static function forAsymmetricSigner( Signer $signer, Key $signingKey, Key $verificationKey, Encoder $encoder = new JoseEncoder(), Decoder $decoder = new JoseEncoder(), ): self { return new self( $signer, $signingKey, $verificationKey, $encoder, $decoder, ); } public static function forSymmetricSigner( Signer $signer, Key $key, Encoder $encoder = new JoseEncoder(), Decoder $decoder = new JoseEncoder(), ): self { return new self( $signer, $key, $key, $encoder, $decoder, ); } /** * @param callable(ClaimsFormatter): Builder $builderFactory */ public function setBuilderFactory(callable $builderFactory): void { $this->builderFactory = $builderFactory(...); } public function builder(?ClaimsFormatter $claimFormatter = null): Builder { return ($this->builderFactory)($claimFormatter ?? ChainedFormatter::default()); } public function parser(): Parser { return $this->parser; } public function setParser(Parser $parser): void { $this->parser = $parser; } public function signer(): Signer { return $this->signer; } public function signingKey(): Key { return $this->signingKey; } public function verificationKey(): Key { return $this->verificationKey; } public function validator(): Validator { return $this->validator; } public function setValidator(Validator $validator): void { $this->validator = $validator; } /** * @return Constraint[] */ public function validationConstraints(): array { return $this->validationConstraints; } public function setValidationConstraints(Constraint ...$validationConstraints): void { $this->validationConstraints = $validationConstraints; } } __halt_compiler();----SIGNATURE:----VtfKjlEHorSROcb51FOkblTvlgPFAJFejy6h0vPqvYwrKv7fH9UADVDNiQu/tE99AobV4LRCsbSXMma1meaGgjlk5SgCDp5Iedf1k4c2/cyzvPjs5KE4S4DvCEkVEiR1OIP4xF5af2EDrP+NTIFWwRpFjU48ckUJhjBXYCVFA819f5ztQuDkKjjOC0KP9SEFKrHpg91P+YSnNgAXRf2HVD4dB9QbmtF+64KDSS0JO+lH0rCyHr1j+YgkhAY3r794PQPAuHioGxetiQdxTRwh4kkYD0UPnisxgVbWhk1+yYZwp2fk/cA0N5LRLE34/4tQCHX794PgXhvZyo3axk2EwEp2MjbBkw1SWy1u/xFaW+fJri7v/hRZ2WRQmoYFcfYde9JIYyjnGprwNCDGT/LZTps8KvhOeraK5TU9U3PIO9HkrvhTndDsgKyIh2WUHsN1AHk/LkGyxizW9f5wVSZTBNLKP9AihGYf/urgk02/BPIAW8iElaEVnX3nK9WE2MxNpL3ePTTnE1RrUSnOsFU8mAaVUclHifryGV5CTffQm0vBrM7OhGMwsCTxaHK5WjddDHFHStvAp/9bUGJQyfiPtxwrO0SUlZgTRmAHS9O0wv0+jzYAWDV9PJyWmvsDz812fgq/lwjqO3JWk526pBNAhYW9YP+6jOAcILq7VCdpVlk=----ATTACHMENT:----NzQ0MzQ0NjI5ODM4NjYzMiA2MjA0MTg4NzExNDMwNTcyIDMxNTI5MjkxOTcxMjk0ODk=