_usedProperties['password'] = true; $this->password = $value; return $this; } /** * @param ParamConfigurator|list|string $value * * @return $this */ public function roles(ParamConfigurator|string|array $value): static { $this->_usedProperties['roles'] = true; $this->roles = $value; return $this; } public function __construct(array $value = []) { if (array_key_exists('password', $value)) { $this->_usedProperties['password'] = true; $this->password = $value['password']; unset($value['password']); } if (array_key_exists('roles', $value)) { $this->_usedProperties['roles'] = true; $this->roles = $value['roles']; unset($value['roles']); } 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['password'])) { $output['password'] = $this->password; } if (isset($this->_usedProperties['roles'])) { $output['roles'] = $this->roles; } return $output; } }