diff options
Diffstat (limited to 'vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php')
| -rw-r--r-- | vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php b/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php new file mode 100644 index 0000000..e4b8fb7 --- /dev/null +++ b/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php @@ -0,0 +1,107 @@ +<?php + +declare(strict_types=1); + +namespace Dotenv\Repository; + +use Dotenv\Repository\Adapter\ReaderInterface; +use Dotenv\Repository\Adapter\WriterInterface; +use InvalidArgumentException; + +final class AdapterRepository implements RepositoryInterface +{ + /** + * The reader to use. + * + * @var \Dotenv\Repository\Adapter\ReaderInterface + */ + private $reader; + + /** + * The writer to use. + * + * @var \Dotenv\Repository\Adapter\WriterInterface + */ + private $writer; + + /** + * Create a new adapter repository instance. + * + * @param \Dotenv\Repository\Adapter\ReaderInterface $reader + * @param \Dotenv\Repository\Adapter\WriterInterface $writer + * + * @return void + */ + public function __construct(ReaderInterface $reader, WriterInterface $writer) + { + $this->reader = $reader; + $this->writer = $writer; + } + + /** + * Determine if the given environment variable is defined. + * + * @param string $name + * + * @return bool + */ + public function has(string $name) + { + return '' !== $name && $this->reader->read($name)->isDefined(); + } + + /** + * Get an environment variable. + * + * @param string $name + * + * @throws \InvalidArgumentException + * + * @return string|null + */ + public function get(string $name) + { + if ('' === $name) { + throw new InvalidArgumentException('Expected name to be a non-empty string.'); + } + + return $this->reader->read($name)->getOrElse(null); + } + + /** + * Set an environment variable. + * + * @param string $name + * @param string $value + * + * @throws \InvalidArgumentException + * + * @return bool + */ + public function set(string $name, string $value) + { + if ('' === $name) { + throw new InvalidArgumentException('Expected name to be a non-empty string.'); + } + + return $this->writer->write($name, $value); + } + + /** + * Clear an environment variable. + * + * @param string $name + * + * @throws \InvalidArgumentException + * + * @return bool + */ + public function clear(string $name) + { + if ('' === $name) { + throw new InvalidArgumentException('Expected name to be a non-empty string.'); + } + + return $this->writer->delete($name); + } +} |
