From c7997574b346e3bd197e01f29871eb80af99e50b Mon Sep 17 00:00:00 2001 From: Filippo Tessarotto Date: Thu, 5 Dec 2024 07:33:40 +0100 Subject: [PATCH] `withWhatever` method names for fluent readonly API --- docs/configuration.md | 8 ++++---- docs/extending-the-library.md | 6 +++--- src/Configuration.php | 10 +++++----- src/Token/Builder.php | 18 +++++++++--------- tests/ConfigurationTest.php | 8 ++++---- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index 68ea2966..c710c057 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -136,7 +136,7 @@ $configuration = Configuration::forSymmetricSigner( InMemory::base64Encoded('mBC5v1sOKVvbdEitdSBenu59nfNfhwkedkJVNabosTw=') ); -$configuration->setBuilderFactory( +$configuration->withBuilderFactory( static function (ClaimsFormatter $formatter): Builder { // This assumes `MyCustomBuilder` is an existing class return new MyCustomBuilder(new JoseEncoder(), $formatter); @@ -165,7 +165,7 @@ $configuration = Configuration::forSymmetricSigner( ); // This assumes `MyParser` is an existing class -$configuration->setParser(new MyParser()); +$configuration->withParser(new MyParser()); ``` ### Validator @@ -189,7 +189,7 @@ $configuration = Configuration::forSymmetricSigner( ); // This assumes `MyValidator` is an existing class -$configuration->setValidator(new MyValidator()); +$configuration->withValidator(new MyValidator()); ``` ### Validation constraints @@ -216,7 +216,7 @@ $configuration = Configuration::forSymmetricSigner( InMemory::base64Encoded('mBC5v1sOKVvbdEitdSBenu59nfNfhwkedkJVNabosTw=') ); -$configuration->setValidationConstraints( +$configuration->withValidationConstraints( new SignedWith($configuration->signer(), $configuration->signingKey()), new StrictValidAt(SystemClock::fromUTC()), new IssuedBy('https://api.my-awesome-company.com') diff --git a/docs/extending-the-library.md b/docs/extending-the-library.md index 52c63d5a..bd9ce812 100644 --- a/docs/extending-the-library.md +++ b/docs/extending-the-library.md @@ -32,7 +32,7 @@ use Lcobucci\JWT\Configuration; $config = $container->get(Configuration::class); assert($config instanceof Configuration); -$config->setBuilderFactory( +$config->withBuilderFactory( static function (ClaimsFormatter $formatter): Builder { return new MyCustomTokenBuilder($formatter); } @@ -99,7 +99,7 @@ use Lcobucci\JWT\Configuration; $config = $container->get(Configuration::class); assert($config instanceof Configuration); -$config->setParser(new MyCustomTokenParser()); +$config->withParser(new MyCustomTokenParser()); ``` ## Signer @@ -157,7 +157,7 @@ use Lcobucci\JWT\Configuration; $config = $container->get(Configuration::class); assert($config instanceof Configuration); -$config->setValidator(new MyCustomTokenValidator()); +$config->withValidator(new MyCustomTokenValidator()); ``` ## Validation constraints diff --git a/src/Configuration.php b/src/Configuration.php index 8bbea07a..66fe4195 100644 --- a/src/Configuration.php +++ b/src/Configuration.php @@ -87,7 +87,7 @@ public static function forSymmetricSigner( } /** @param callable(ClaimsFormatter): Builder $builderFactory */ - public function setBuilderFactory(callable $builderFactory): self + public function withBuilderFactory(callable $builderFactory): self { return new self( $this->signer, @@ -97,7 +97,7 @@ public function setBuilderFactory(callable $builderFactory): self $this->decoder, $this->parser, $this->validator, - Closure::fromCallable($builderFactory), + $builderFactory(...), ...$this->validationConstraints, ); } @@ -112,7 +112,7 @@ public function parser(): Parser return $this->parser; } - public function setParser(Parser $parser): self + public function withParser(Parser $parser): self { return new self( $this->signer, @@ -147,7 +147,7 @@ public function validator(): Validator return $this->validator; } - public function setValidator(Validator $validator): self + public function withValidator(Validator $validator): self { return new self( $this->signer, @@ -168,7 +168,7 @@ public function validationConstraints(): array return $this->validationConstraints; } - public function setValidationConstraints(Constraint ...$validationConstraints): self + public function withValidationConstraints(Constraint ...$validationConstraints): self { return new self( $this->signer, diff --git a/src/Token/Builder.php b/src/Token/Builder.php index 7a82e065..9eedcf34 100644 --- a/src/Token/Builder.php +++ b/src/Token/Builder.php @@ -45,7 +45,7 @@ public function permittedFor(string ...$audiences): BuilderInterface $configured = $this->claims[RegisteredClaims::AUDIENCE] ?? []; $toAppend = array_diff($audiences, $configured); - return $this->setClaim(RegisteredClaims::AUDIENCE, array_merge($configured, $toAppend)); + return $this->newWithClaim(RegisteredClaims::AUDIENCE, array_merge($configured, $toAppend)); } /** @@ -54,7 +54,7 @@ public function permittedFor(string ...$audiences): BuilderInterface */ public function expiresAt(DateTimeImmutable $expiration): BuilderInterface { - return $this->setClaim(RegisteredClaims::EXPIRATION_TIME, $expiration); + return $this->newWithClaim(RegisteredClaims::EXPIRATION_TIME, $expiration); } /** @@ -63,7 +63,7 @@ public function expiresAt(DateTimeImmutable $expiration): BuilderInterface */ public function identifiedBy(string $id): BuilderInterface { - return $this->setClaim(RegisteredClaims::ID, $id); + return $this->newWithClaim(RegisteredClaims::ID, $id); } /** @@ -72,7 +72,7 @@ public function identifiedBy(string $id): BuilderInterface */ public function issuedAt(DateTimeImmutable $issuedAt): BuilderInterface { - return $this->setClaim(RegisteredClaims::ISSUED_AT, $issuedAt); + return $this->newWithClaim(RegisteredClaims::ISSUED_AT, $issuedAt); } /** @@ -81,7 +81,7 @@ public function issuedAt(DateTimeImmutable $issuedAt): BuilderInterface */ public function issuedBy(string $issuer): BuilderInterface { - return $this->setClaim(RegisteredClaims::ISSUER, $issuer); + return $this->newWithClaim(RegisteredClaims::ISSUER, $issuer); } /** @@ -90,7 +90,7 @@ public function issuedBy(string $issuer): BuilderInterface */ public function canOnlyBeUsedAfter(DateTimeImmutable $notBefore): BuilderInterface { - return $this->setClaim(RegisteredClaims::NOT_BEFORE, $notBefore); + return $this->newWithClaim(RegisteredClaims::NOT_BEFORE, $notBefore); } /** @@ -99,7 +99,7 @@ public function canOnlyBeUsedAfter(DateTimeImmutable $notBefore): BuilderInterfa */ public function relatedTo(string $subject): BuilderInterface { - return $this->setClaim(RegisteredClaims::SUBJECT, $subject); + return $this->newWithClaim(RegisteredClaims::SUBJECT, $subject); } /** @@ -129,11 +129,11 @@ public function withClaim(string $name, mixed $value): BuilderInterface throw RegisteredClaimGiven::forClaim($name); } - return $this->setClaim($name, $value); + return $this->newWithClaim($name, $value); } /** @param non-empty-string $name */ - private function setClaim(string $name, mixed $value): BuilderInterface + private function newWithClaim(string $name, mixed $value): BuilderInterface { $claims = $this->claims; $claims[$name] = $value; diff --git a/tests/ConfigurationTest.php b/tests/ConfigurationTest.php index ea66cbaa..2fd2a996 100644 --- a/tests/ConfigurationTest.php +++ b/tests/ConfigurationTest.php @@ -108,7 +108,7 @@ public function builderShouldUseBuilderFactoryWhenThatIsConfigured(): void new KeyDumpSigner(), InMemory::plainText('private'), ); - $config = $config->setBuilderFactory( + $config = $config->withBuilderFactory( static function () use ($builder): Builder { return $builder; }, @@ -148,7 +148,7 @@ public function parserShouldNotCreateAnInstanceIfItWasConfigured(): void new KeyDumpSigner(), InMemory::plainText('private'), ); - $config = $config->setParser($this->parser); + $config = $config->withParser($this->parser); self::assertSame($this->parser, $config->parser()); } @@ -172,7 +172,7 @@ public function validatorShouldReturnTheConfiguredValidator(): void new KeyDumpSigner(), InMemory::plainText('private'), ); - $config = $config->setValidator($this->validator); + $config = $config->withValidator($this->validator); self::assertSame($this->validator, $config->validator()); } @@ -195,7 +195,7 @@ public function validationConstraintsShouldReturnTheConfiguredValidator(): void new KeyDumpSigner(), InMemory::plainText('private'), ); - $config = $config->setValidationConstraints($this->validationConstraints); + $config = $config->withValidationConstraints($this->validationConstraints); self::assertSame([$this->validationConstraints], $config->validationConstraints()); }