fix getting environment variables

This commit is contained in:
printempw 2016-09-27 22:35:04 +08:00
parent 03fbf61cf8
commit a877e93c3a
8 changed files with 85 additions and 34 deletions

View File

@ -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;
}
}

View File

@ -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'),
/*
|--------------------------------------------------------------------------

View File

@ -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,
],
],

View File

@ -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,
],

View File

@ -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'),
/*
|--------------------------------------------------------------------------

View File

@ -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',
],

View File

@ -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', '')
];

View File

@ -16,7 +16,7 @@ return [
|
*/
'driver' => env('SESSION_DRIVER', 'file'),
'driver' => menv('SESSION_DRIVER', 'file'),
/*
|--------------------------------------------------------------------------