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.
52 lines
1.7 KiB
52 lines
1.7 KiB
6 years ago
|
<?php
|
||
|
|
||
|
use Symfony\Component\Dotenv\Dotenv;
|
||
|
|
||
|
require dirname(__DIR__).'/vendor/autoload.php';
|
||
|
|
||
|
if (!array_key_exists('APP_ENV', $_SERVER)) {
|
||
|
$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] ?? null;
|
||
|
}
|
||
|
|
||
|
if ('prod' !== $_SERVER['APP_ENV']) {
|
||
|
if (!class_exists(Dotenv::class)) {
|
||
|
throw new RuntimeException('The "APP_ENV" environment variable is not set to "prod". Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
|
||
|
}
|
||
|
|
||
|
$path = dirname(__DIR__).'/.env';
|
||
|
$dotenv = new Dotenv();
|
||
|
|
||
|
if (method_exists($dotenv, 'loadEnv')) {
|
||
|
$dotenv->loadEnv($path);
|
||
|
} else {
|
||
|
// fallback code in case your Dotenv component is not 4.2 or higher (when loadEnv() was added)
|
||
|
|
||
|
if (file_exists($path) || !file_exists($p = "$path.dist")) {
|
||
|
$dotenv->load($path);
|
||
|
} else {
|
||
|
$dotenv->load($p);
|
||
|
}
|
||
|
|
||
|
if (null === $env = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) {
|
||
|
$dotenv->populate(array('APP_ENV' => $env = 'dev'));
|
||
|
}
|
||
|
|
||
|
if ('test' !== $env && file_exists($p = "$path.local")) {
|
||
|
$dotenv->load($p);
|
||
|
$env = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env;
|
||
|
}
|
||
|
|
||
|
if (file_exists($p = "$path.$env")) {
|
||
|
$dotenv->load($p);
|
||
|
}
|
||
|
|
||
|
if (file_exists($p = "$path.$env.local")) {
|
||
|
$dotenv->load($p);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $_SERVER['APP_ENV'] ?: $_ENV['APP_ENV'] ?: 'dev';
|
||
|
$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
|
||
|
$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0';
|