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