<?php
namespace App\Model;
use Symfony\Component\Validator\Constraints as Assert;
use App\Util\Api;
class Domain implements \JsonSerializable
{
/**
* @Assert\NotBlank()
*/
private $domain;
// options
private $options;
public const DOMAIN_REGEX = '/^[a-z0-9_\-.,+]+$/';
public const MANY_DOMAINS_REGEX = '/^[a-z0-9_\- .,+]+$/';
public function getDomain(): ?string
{
return $this->domain;
}
public function setDomain(string $domain): self
{
$this->domain = $domain;
return $this;
}
public function getOptions(): ?array
{
return $this->options;
}
public function setOptions(array $options): self
{
$this->options = $options;
return $this;
}
public function jsonSerialize()
{
$vars = get_object_vars($this);
return $vars;
}
/**
* returns value of the option or return null if not found
* @param string $name or null
*/
public function findOption(string $name)
{
if(array_key_exists($name, $this->options)) {
return $this->options[$name];
}
else {
return null;
}
}
public function deleteOption(string $name)
{
if(array_key_exists($name, $this->options)) {
unset($this->options[$name]);
}
}
public function setOption(string $name, string $val)
{
$this->options[$name] = $val;
return $this;
}
}