radarrplexorganizrnginxsonarrdashboardhtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelanding
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							138 lines
						
					
					
						
							2.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							138 lines
						
					
					
						
							2.9 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace Dotenv;
							 | 
						|
								
							 | 
						|
								use Dotenv\Exception\InvalidPathException;
							 | 
						|
								
							 | 
						|
								/**
							 | 
						|
								 * This is the dotenv class.
							 | 
						|
								 *
							 | 
						|
								 * It's responsible for loading a `.env` file in the given directory and
							 | 
						|
								 * setting the environment vars.
							 | 
						|
								 */
							 | 
						|
								class Dotenv
							 | 
						|
								{
							 | 
						|
								    /**
							 | 
						|
								     * The file path.
							 | 
						|
								     *
							 | 
						|
								     * @var string
							 | 
						|
								     */
							 | 
						|
								    protected $filePath;
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * The loader instance.
							 | 
						|
								     *
							 | 
						|
								     * @var \Dotenv\Loader|null
							 | 
						|
								     */
							 | 
						|
								    protected $loader;
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Create a new dotenv instance.
							 | 
						|
								     *
							 | 
						|
								     * @param string $path
							 | 
						|
								     * @param string $file
							 | 
						|
								     *
							 | 
						|
								     * @return void
							 | 
						|
								     */
							 | 
						|
								    public function __construct($path, $file = '.env')
							 | 
						|
								    {
							 | 
						|
								        $this->filePath = $this->getFilePath($path, $file);
							 | 
						|
								        $this->loader = new Loader($this->filePath, true);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Load environment file in given directory.
							 | 
						|
								     *
							 | 
						|
								     * @throws \Dotenv\Exception\InvalidPathException|\Dotenv\Exception\InvalidFileException
							 | 
						|
								     *
							 | 
						|
								     * @return array
							 | 
						|
								     */
							 | 
						|
								    public function load()
							 | 
						|
								    {
							 | 
						|
								        return $this->loadData();
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Load environment file in given directory, suppress InvalidPathException.
							 | 
						|
								     *
							 | 
						|
								     * @throws \Dotenv\Exception\InvalidFileException
							 | 
						|
								     *
							 | 
						|
								     * @return array
							 | 
						|
								     */
							 | 
						|
								    public function safeLoad()
							 | 
						|
								    {
							 | 
						|
								        try {
							 | 
						|
								            return $this->loadData();
							 | 
						|
								        } catch (InvalidPathException $e) {
							 | 
						|
								            // suppressing exception
							 | 
						|
								            return array();
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Load environment file in given directory.
							 | 
						|
								     *
							 | 
						|
								     * @throws \Dotenv\Exception\InvalidPathException|\Dotenv\Exception\InvalidFileException
							 | 
						|
								     *
							 | 
						|
								     * @return array
							 | 
						|
								     */
							 | 
						|
								    public function overload()
							 | 
						|
								    {
							 | 
						|
								        return $this->loadData(true);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Returns the full path to the file.
							 | 
						|
								     *
							 | 
						|
								     * @param string $path
							 | 
						|
								     * @param string $file
							 | 
						|
								     *
							 | 
						|
								     * @return string
							 | 
						|
								     */
							 | 
						|
								    protected function getFilePath($path, $file)
							 | 
						|
								    {
							 | 
						|
								        if (!is_string($file)) {
							 | 
						|
								            $file = '.env';
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        $filePath = rtrim($path, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.$file;
							 | 
						|
								
							 | 
						|
								        return $filePath;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Actually load the data.
							 | 
						|
								     *
							 | 
						|
								     * @param bool $overload
							 | 
						|
								     *
							 | 
						|
								     * @throws \Dotenv\Exception\InvalidPathException|\Dotenv\Exception\InvalidFileException
							 | 
						|
								     *
							 | 
						|
								     * @return array
							 | 
						|
								     */
							 | 
						|
								    protected function loadData($overload = false)
							 | 
						|
								    {
							 | 
						|
								        return $this->loader->setImmutable(!$overload)->load();
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Required ensures that the specified variables exist, and returns a new validator object.
							 | 
						|
								     *
							 | 
						|
								     * @param string|string[] $variable
							 | 
						|
								     *
							 | 
						|
								     * @return \Dotenv\Validator
							 | 
						|
								     */
							 | 
						|
								    public function required($variable)
							 | 
						|
								    {
							 | 
						|
								        return new Validator((array) $variable, $this->loader);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    /**
							 | 
						|
								     * Get the list of environment variables declared inside the 'env' file.
							 | 
						|
								     *
							 | 
						|
								     * @return array
							 | 
						|
								     */
							 | 
						|
								    public function getEnvironmentVariableNames()
							 | 
						|
								    {
							 | 
						|
								        return $this->loader->variableNames;
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |