* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Serializer\Context; /** * @author Mathias Arlaud */ trait ContextBuilderTrait { /** * @var array */ private array $context = []; protected function with(string $key, mixed $value): static { $instance = new static(); $instance->context = array_merge($this->context, [$key => $value]); return $instance; } /** * @param ContextBuilderInterface|array $context */ public function withContext(ContextBuilderInterface|array $context): static { if ($context instanceof ContextBuilderInterface) { $context = $context->toArray(); } $instance = new static(); $instance->context = array_merge($this->context, $context); return $instance; } /** * @return array */ public function toArray(): array { return $this->context; } }