diff --git a/app/helpers.php b/app/helpers.php index c2498b43..ddfa98e1 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -177,3 +177,54 @@ if (! function_exists('option')) { return Option::get($key); } } + +if (! function_exists('menv')) { + /** + * Gets the value of an environment variable by getenv() or $_ENV. + * + * @param string $key + * @param mixed $default + * @return mixed + */ + function menv($key, $default = null) + { + if (function_exists('getenv')) { + // try to read by getenv() + $value = getenv($key); + + if ($value === false) { + return value($default); + } + } else { + // try to read from $_ENV or $_SERVER + if (isset($_ENV[$key])) { + $value = $_ENV[$key]; + } elseif (isset($_SERVER[$key])) { + $value = $_SERVER[$key]; + } else { + return value($default); + } + } + + switch (strtolower($value)) { + case 'true': + case '(true)': + return true; + case 'false': + case '(false)': + return false; + case 'empty': + case '(empty)': + return ''; + case 'null': + case '(null)': + return; + } + + if (strlen($value) > 1 && Str::startsWith($value, '"') && Str::endsWith($value, '"')) { + return substr($value, 1, -1); + } + + return $value; + } +} diff --git a/config/app.php b/config/app.php index f827b610..a4c6473c 100644 --- a/config/app.php +++ b/config/app.php @@ -22,7 +22,7 @@ return [ | */ - 'env' => env('APP_ENV', 'production'), + 'env' => menv('APP_ENV', 'production'), /* |-------------------------------------------------------------------------- @@ -35,7 +35,7 @@ return [ | */ - 'debug' => env('APP_DEBUG', false), + 'debug' => menv('APP_DEBUG', false), /* |-------------------------------------------------------------------------- @@ -48,7 +48,7 @@ return [ | */ - 'url' => env('APP_URL', 'http://localhost'), + 'url' => menv('APP_URL', 'http://localhost'), /* |-------------------------------------------------------------------------- @@ -100,7 +100,7 @@ return [ | */ - 'key' => env('APP_KEY', 'this_is_dangerous_default_key'), + 'key' => menv('APP_KEY', 'this_is_dangerous_default_key'), 'cipher' => 'AES-256-CBC', @@ -117,7 +117,7 @@ return [ | */ - 'log' => env('APP_LOG', 'single'), + 'log' => menv('APP_LOG', 'single'), /* |-------------------------------------------------------------------------- diff --git a/config/cache.php b/config/cache.php index 3ffa840b..b6353a74 100644 --- a/config/cache.php +++ b/config/cache.php @@ -13,7 +13,7 @@ return [ | */ - 'default' => env('CACHE_DRIVER', 'file'), + 'default' => menv('CACHE_DRIVER', 'file'), /* |-------------------------------------------------------------------------- @@ -51,8 +51,8 @@ return [ 'driver' => 'memcached', 'servers' => [ [ - 'host' => env('MEMCACHED_HOST', '127.0.0.1'), - 'port' => env('MEMCACHED_PORT', 11211), + 'host' => menv('MEMCACHED_HOST', '127.0.0.1'), + 'port' => menv('MEMCACHED_PORT', 11211), 'weight' => 100, ], ], diff --git a/config/database.php b/config/database.php index 8451a62f..72933209 100644 --- a/config/database.php +++ b/config/database.php @@ -26,7 +26,7 @@ return [ | */ - 'default' => env('DB_CONNECTION', 'mysql'), + 'default' => menv('DB_CONNECTION', 'mysql'), /* |-------------------------------------------------------------------------- @@ -48,17 +48,17 @@ return [ 'sqlite' => [ 'driver' => 'sqlite', - 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'database' => menv('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', ], 'mysql' => [ 'driver' => 'mysql', - 'host' => env('DB_HOST', 'localhost'), - 'port' => env('DB_PORT', '3306'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), + 'host' => menv('DB_HOST', 'localhost'), + 'port' => menv('DB_PORT', '3306'), + 'database' => menv('DB_DATABASE', 'forge'), + 'username' => menv('DB_USERNAME', 'forge'), + 'password' => menv('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', @@ -68,11 +68,11 @@ return [ 'pgsql' => [ 'driver' => 'pgsql', - 'host' => env('DB_HOST', 'localhost'), - 'port' => env('DB_PORT', '5432'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), + 'host' => menv('DB_HOST', 'localhost'), + 'port' => menv('DB_PORT', '5432'), + 'database' => menv('DB_DATABASE', 'forge'), + 'username' => menv('DB_USERNAME', 'forge'), + 'password' => menv('DB_PASSWORD', ''), 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', @@ -109,9 +109,9 @@ return [ 'cluster' => false, 'default' => [ - 'host' => env('REDIS_HOST', 'localhost'), - 'password' => env('REDIS_PASSWORD', null), - 'port' => env('REDIS_PORT', 6379), + 'host' => menv('REDIS_HOST', 'localhost'), + 'password' => menv('REDIS_PASSWORD', null), + 'port' => menv('REDIS_PORT', 6379), 'database' => 0, ], diff --git a/config/mail.php b/config/mail.php index 209d96da..da2ebb73 100644 --- a/config/mail.php +++ b/config/mail.php @@ -16,7 +16,7 @@ return [ | */ - 'driver' => env('MAIL_DRIVER', 'smtp'), + 'driver' => menv('MAIL_DRIVER', 'smtp'), /* |-------------------------------------------------------------------------- @@ -29,7 +29,7 @@ return [ | */ - 'host' => env('MAIL_HOST', ''), + 'host' => menv('MAIL_HOST', ''), /* |-------------------------------------------------------------------------- @@ -42,7 +42,7 @@ return [ | */ - 'port' => env('MAIL_PORT', 587), + 'port' => menv('MAIL_PORT', 587), /* |-------------------------------------------------------------------------- @@ -68,7 +68,7 @@ return [ | */ - 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'encryption' => menv('MAIL_ENCRYPTION', 'tls'), /* |-------------------------------------------------------------------------- @@ -81,7 +81,7 @@ return [ | */ - 'username' => env('MAIL_USERNAME'), + 'username' => menv('MAIL_USERNAME'), /* |-------------------------------------------------------------------------- @@ -94,7 +94,7 @@ return [ | */ - 'password' => env('MAIL_PASSWORD'), + 'password' => menv('MAIL_PASSWORD'), /* |-------------------------------------------------------------------------- diff --git a/config/queue.php b/config/queue.php index d0f732a6..948197d4 100644 --- a/config/queue.php +++ b/config/queue.php @@ -15,7 +15,7 @@ return [ | */ - 'default' => env('QUEUE_DRIVER', 'sync'), + 'default' => menv('QUEUE_DRIVER', 'sync'), /* |-------------------------------------------------------------------------- @@ -78,7 +78,7 @@ return [ */ 'failed' => [ - 'database' => env('DB_CONNECTION', 'mysql'), + 'database' => menv('DB_CONNECTION', 'mysql'), 'table' => 'failed_jobs', ], diff --git a/config/secure.php b/config/secure.php index bf829405..0d764849 100644 --- a/config/secure.php +++ b/config/secure.php @@ -9,6 +9,6 @@ return [ | Load them from env to config, preventing cache problems | */ - 'cipher' => env('PWD_METHOD', 'SALTED2MD5'), - 'salt' => env('APP_KEY', '') + 'cipher' => menv('PWD_METHOD', 'SALTED2MD5'), + 'salt' => menv('APP_KEY', '') ]; diff --git a/config/session.php b/config/session.php index 47ceefd3..e5c04628 100644 --- a/config/session.php +++ b/config/session.php @@ -16,7 +16,7 @@ return [ | */ - 'driver' => env('SESSION_DRIVER', 'file'), + 'driver' => menv('SESSION_DRIVER', 'file'), /* |--------------------------------------------------------------------------