| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | 
							- <?php
 
- /*
 
-  * This file is part of the Symfony package.
 
-  *
 
-  * (c) Fabien Potencier <fabien@symfony.com>
 
-  *
 
-  * For the full copyright and license information, please view the LICENSE
 
-  * file that was distributed with this source code.
 
-  */
 
- namespace Symfony\Component\Translation\Provider;
 
- use Symfony\Component\Translation\Exception\InvalidArgumentException;
 
- use Symfony\Component\Translation\Exception\MissingRequiredOptionException;
 
- /**
 
-  * @author Fabien Potencier <fabien@symfony.com>
 
-  * @author Oskar Stark <oskarstark@googlemail.com>
 
-  */
 
- final class Dsn
 
- {
 
-     private $scheme;
 
-     private $host;
 
-     private $user;
 
-     private $password;
 
-     private $port;
 
-     private $path;
 
-     private $options;
 
-     private $originalDsn;
 
-     public function __construct(string $dsn)
 
-     {
 
-         $this->originalDsn = $dsn;
 
-         if (false === $parsedDsn = parse_url($dsn)) {
 
-             throw new InvalidArgumentException(sprintf('The "%s" translation provider DSN is invalid.', $dsn));
 
-         }
 
-         if (!isset($parsedDsn['scheme'])) {
 
-             throw new InvalidArgumentException(sprintf('The "%s" translation provider DSN must contain a scheme.', $dsn));
 
-         }
 
-         $this->scheme = $parsedDsn['scheme'];
 
-         if (!isset($parsedDsn['host'])) {
 
-             throw new InvalidArgumentException(sprintf('The "%s" translation provider DSN must contain a host (use "default" by default).', $dsn));
 
-         }
 
-         $this->host = $parsedDsn['host'];
 
-         $this->user = '' !== ($parsedDsn['user'] ?? '') ? urldecode($parsedDsn['user']) : null;
 
-         $this->password = '' !== ($parsedDsn['pass'] ?? '') ? urldecode($parsedDsn['pass']) : null;
 
-         $this->port = $parsedDsn['port'] ?? null;
 
-         $this->path = $parsedDsn['path'] ?? null;
 
-         parse_str($parsedDsn['query'] ?? '', $this->options);
 
-     }
 
-     public function getScheme(): string
 
-     {
 
-         return $this->scheme;
 
-     }
 
-     public function getHost(): string
 
-     {
 
-         return $this->host;
 
-     }
 
-     public function getUser(): ?string
 
-     {
 
-         return $this->user;
 
-     }
 
-     public function getPassword(): ?string
 
-     {
 
-         return $this->password;
 
-     }
 
-     public function getPort(int $default = null): ?int
 
-     {
 
-         return $this->port ?? $default;
 
-     }
 
-     public function getOption(string $key, $default = null)
 
-     {
 
-         return $this->options[$key] ?? $default;
 
-     }
 
-     public function getRequiredOption(string $key)
 
-     {
 
-         if (!\array_key_exists($key, $this->options) || '' === trim($this->options[$key])) {
 
-             throw new MissingRequiredOptionException($key);
 
-         }
 
-         return $this->options[$key];
 
-     }
 
-     public function getOptions(): array
 
-     {
 
-         return $this->options;
 
-     }
 
-     public function getPath(): ?string
 
-     {
 
-         return $this->path;
 
-     }
 
-     public function getOriginalDsn(): string
 
-     {
 
-         return $this->originalDsn;
 
-     }
 
- }
 
 
  |