https://www.phpfastcache.com * @author Georges.L (Geolim4) * */ declare(strict_types=1); namespace Phpfastcache\Drivers\Couchdb; use Phpfastcache\Config\ConfigurationOption; use Phpfastcache\Exceptions\PhpfastcacheInvalidArgumentException; class Config extends ConfigurationOption { /** * @var string */ protected $host = '127.0.0.1'; /** * @var int */ protected $port = 5984; /** * @var string */ protected $username = ''; /** * @var string */ protected $password = ''; /** * @var bool */ protected $ssl = false; /** * @var int */ protected $timeout = 10; /** * @var string */ protected $database = Driver::COUCHDB_DEFAULT_DB_NAME; /** * @return string */ public function getDatabase(): string { return $this->database; } /** * @param string $database * @return Config */ public function setDatabase(string $database): Config { /** @see https://docs.couchdb.org/en/latest/api/database/common.html#put--db */ if(\preg_match('#^[a-z][a-z0-9_\-+\$()/]+$#', $database)){ $this->database = $database; return $this; } throw new PhpfastcacheInvalidArgumentException(sprintf( "Error: illegal_database_name Name: '%s'. Only lowercase characters (a-z), digits (0-9), and any of the characters _, $, (, ), +, -, and / are allowed. Must begin with a letter.", $database )); } /** * @return string */ public function getHost(): string { return $this->host; } /** * @param string $host * @return self */ public function setHost(string $host): self { $this->host = $host; return $this; } /** * @return int */ public function getPort(): int { return $this->port; } /** * @param int $port * @return self */ public function setPort(int $port): self { $this->port = $port; return $this; } /** * @return string */ public function getUsername(): string { return $this->username; } /** * @param string $username * @return self */ public function setUsername(string $username): self { $this->username = $username; return $this; } /** * @return string */ public function getPassword(): string { return $this->password; } /** * @param string $password * @return self */ public function setPassword(string $password): self { $this->password = $password; return $this; } /** * @return bool */ public function isSsl(): bool { return $this->ssl; } /** * @param bool $ssl * @return self */ public function setSsl(bool $ssl): self { $this->ssl = $ssl; return $this; } /** * @return int */ public function getTimeout(): int { return $this->timeout; } /** * @param int $timeout * @return self */ public function setTimeout(int $timeout): self { $this->timeout = $timeout; return $this; } }