ChainedFormatter.php 866 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. declare(strict_types=1);
  3. namespace Lcobucci\JWT\Encoding;
  4. use Lcobucci\JWT\ClaimsFormatter;
  5. final class ChainedFormatter implements ClaimsFormatter
  6. {
  7. /** @var list<ClaimsFormatter> */
  8. private array $formatters;
  9. public function __construct(ClaimsFormatter ...$formatters)
  10. {
  11. $this->formatters = $formatters;
  12. }
  13. public static function default(): self
  14. {
  15. return new self(new UnifyAudience(), new MicrosecondBasedDateConversion());
  16. }
  17. public static function withUnixTimestampDates(): self
  18. {
  19. return new self(new UnifyAudience(), new UnixTimestampDates());
  20. }
  21. /** @inheritdoc */
  22. public function formatClaims(array $claims): array
  23. {
  24. foreach ($this->formatters as $formatter) {
  25. $claims = $formatter->formatClaims($claims);
  26. }
  27. return $claims;
  28. }
  29. }