Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace Dotenv\Repository;
6
 
7
use Dotenv\Repository\Adapter\ReaderInterface;
8
use Dotenv\Repository\Adapter\WriterInterface;
9
use InvalidArgumentException;
10
 
11
final class AdapterRepository implements RepositoryInterface
12
{
13
    /**
14
     * The reader to use.
15
     *
16
     * @var \Dotenv\Repository\Adapter\ReaderInterface
17
     */
18
    private $reader;
19
 
20
    /**
21
     * The writer to use.
22
     *
23
     * @var \Dotenv\Repository\Adapter\WriterInterface
24
     */
25
    private $writer;
26
 
27
    /**
28
     * Create a new adapter repository instance.
29
     *
30
     * @param \Dotenv\Repository\Adapter\ReaderInterface $reader
31
     * @param \Dotenv\Repository\Adapter\WriterInterface $writer
32
     *
33
     * @return void
34
     */
35
    public function __construct(ReaderInterface $reader, WriterInterface $writer)
36
    {
37
        $this->reader = $reader;
38
        $this->writer = $writer;
39
    }
40
 
41
    /**
42
     * Determine if the given environment variable is defined.
43
     *
44
     * @param string $name
45
     *
46
     * @return bool
47
     */
48
    public function has(string $name)
49
    {
50
        return '' !== $name && $this->reader->read($name)->isDefined();
51
    }
52
 
53
    /**
54
     * Get an environment variable.
55
     *
56
     * @param string $name
57
     *
58
     * @throws \InvalidArgumentException
59
     *
60
     * @return string|null
61
     */
62
    public function get(string $name)
63
    {
64
        if ('' === $name) {
65
            throw new InvalidArgumentException('Expected name to be a non-empty string.');
66
        }
67
 
68
        return $this->reader->read($name)->getOrElse(null);
69
    }
70
 
71
    /**
72
     * Set an environment variable.
73
     *
74
     * @param string $name
75
     * @param string $value
76
     *
77
     * @throws \InvalidArgumentException
78
     *
79
     * @return bool
80
     */
81
    public function set(string $name, string $value)
82
    {
83
        if ('' === $name) {
84
            throw new InvalidArgumentException('Expected name to be a non-empty string.');
85
        }
86
 
87
        return $this->writer->write($name, $value);
88
    }
89
 
90
    /**
91
     * Clear an environment variable.
92
     *
93
     * @param string $name
94
     *
95
     * @throws \InvalidArgumentException
96
     *
97
     * @return bool
98
     */
99
    public function clear(string $name)
100
    {
101
        if ('' === $name) {
102
            throw new InvalidArgumentException('Expected name to be a non-empty string.');
103
        }
104
 
105
        return $this->writer->delete($name);
106
    }
107
}