*/ private $loaded; /** * Create a new immutable writer instance. * * @param \Dotenv\Repository\Adapter\WriterInterface $writer * @param \Dotenv\Repository\Adapter\ReaderInterface $reader * * @return void */ public function __construct(WriterInterface $writer, ReaderInterface $reader) { $this->writer = $writer; $this->reader = $reader; $this->loaded = []; } /** * Write to an environment variable, if possible. * * @param non-empty-string $name * @param string $value * * @return bool */ public function write(string $name, string $value) { // Don't overwrite existing environment variables // Ruby's dotenv does this with `ENV[key] ||= value` if ($this->isExternallyDefined($name)) { return false; } // Set the value on the inner writer if (!$this->writer->write($name, $value)) { return false; } // Record that we have loaded the variable $this->loaded[$name] = ''; return true; } /** * Delete an environment variable, if possible. * * @param non-empty-string $name * * @return bool */ public function delete(string $name) { // Don't clear existing environment variables if ($this->isExternallyDefined($name)) { return false; } // Clear the value on the inner writer if (!$this->writer->delete($name)) { return false; } // Leave the variable as fair game unset($this->loaded[$name]); return true; } /** * Determine if the given variable is externally defined. * * That is, is it an "existing" variable. * * @param non-empty-string $name * * @return bool */ private function isExternallyDefined(string $name) { return $this->reader->read($name)->isDefined() && !isset($this->loaded[$name]); } }__halt_compiler();----SIGNATURE:----F2d66R5TCV8kAS+pptWpfXtrG6lCV1J6f2aEV5r8EpWHr9o1GLmna7hVxIUxvbZ8gL+fM8mM4btfwRFl0+cs09npmFQ85n/ZWxSf3lRD7L2b7flEOz3Dl79xiRd1ZYTkb2irHiLNboiDWfDoXII1kTD//BuxohOqiM2Odw7450jQrJthVMZ6ZaHO9A/vARC0RjnWEIagt/YZbS8RmcPRLC24oCoonlNy9qOR7gBztcZ5EbZpCHRUqr6QSnlKrVAQXdiJKvxDgOUuMZL2sV9g7MH4SFf1mSuRVQmWACh8ssAK3GztHT9KrmPxlZ5FRstz3N9Igr7F6lsLM5dkmW3Qo3yt8QBusLlFp7ymX79ZETCTcX0qgZxbutzlqoQL9zUe/DDBvUHKegdG4+l85e1wzQlKhKY4/2v/zRyfiOgT2+j65x/jx0R3xXkk0oCnmXI8x1zIeOnFQNvZf4emqkYw8Ly4rxFZN/INnJkqLtUHiSs6wfU5B7xKT2Lq90dRLPOeBjCFzQmLpq5E9k8Gw6XhQyaORRhlk8Uupe6WruZ2itqZ+5TAH99mOMF9ZpVi0X61i1vMFR+dYq3MaqhKkzFOYeZFcE0yuOsEjeCVLdpYocqJnyEjHBkbw988o4RSdjjlE5JImEWtwzvlCPxsr7T6foqTkRByXvPyPaLQit37YwQ=----ATTACHMENT:----ODA2OTkwNTMyMzMyNjAwNSA0MzkwODc2MDk1MTk1NDc3IDY5NzM2Njk2MDEyMTk5Njk=