_usedProperties['path'] = true; $this->path = $value; return $this; } /** * @default null * @param ParamConfigurator|mixed $value * @return $this */ public function domain($value): static { $this->_usedProperties['domain'] = true; $this->domain = $value; return $this; } /** * @default false * @param ParamConfigurator|mixed $value * @return $this */ public function secure($value): static { $this->_usedProperties['secure'] = true; $this->secure = $value; return $this; } /** * @default null * @param ParamConfigurator|mixed $value * @return $this */ public function samesite($value): static { $this->_usedProperties['samesite'] = true; $this->samesite = $value; return $this; } public function __construct(array $value = []) { if (array_key_exists('path', $value)) { $this->_usedProperties['path'] = true; $this->path = $value['path']; unset($value['path']); } if (array_key_exists('domain', $value)) { $this->_usedProperties['domain'] = true; $this->domain = $value['domain']; unset($value['domain']); } if (array_key_exists('secure', $value)) { $this->_usedProperties['secure'] = true; $this->secure = $value['secure']; unset($value['secure']); } if (array_key_exists('samesite', $value)) { $this->_usedProperties['samesite'] = true; $this->samesite = $value['samesite']; unset($value['samesite']); } if ([] !== $value) { throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); } } public function toArray(): array { $output = []; if (isset($this->_usedProperties['path'])) { $output['path'] = $this->path; } if (isset($this->_usedProperties['domain'])) { $output['domain'] = $this->domain; } if (isset($this->_usedProperties['secure'])) { $output['secure'] = $this->secure; } if (isset($this->_usedProperties['samesite'])) { $output['samesite'] = $this->samesite; } return $output; } }