summaryrefslogtreecommitdiff
path: root/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php')
-rw-r--r--vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php107
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);
+ }
+}