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); 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', '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', 'driver' => 'memcached',
'servers' => [ 'servers' => [
[ [
'host' => env('MEMCACHED_HOST', '127.0.0.1'), 'host' => menv('MEMCACHED_HOST', '127.0.0.1'),
'port' => env('MEMCACHED_PORT', 11211), 'port' => menv('MEMCACHED_PORT', 11211),
'weight' => 100, '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' => [ 'sqlite' => [
'driver' => 'sqlite', 'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')), 'database' => menv('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '', 'prefix' => '',
], ],
'mysql' => [ 'mysql' => [
'driver' => 'mysql', 'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'), 'host' => menv('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'), 'port' => menv('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'), 'database' => menv('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'), 'username' => menv('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''), 'password' => menv('DB_PASSWORD', ''),
'charset' => 'utf8', 'charset' => 'utf8',
'collation' => 'utf8_unicode_ci', 'collation' => 'utf8_unicode_ci',
'prefix' => '', 'prefix' => '',
@ -68,11 +68,11 @@ return [
'pgsql' => [ 'pgsql' => [
'driver' => 'pgsql', 'driver' => 'pgsql',
'host' => env('DB_HOST', 'localhost'), 'host' => menv('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '5432'), 'port' => menv('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'), 'database' => menv('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'), 'username' => menv('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''), 'password' => menv('DB_PASSWORD', ''),
'charset' => 'utf8', 'charset' => 'utf8',
'prefix' => '', 'prefix' => '',
'schema' => 'public', 'schema' => 'public',
@ -109,9 +109,9 @@ return [
'cluster' => false, 'cluster' => false,
'default' => [ 'default' => [
'host' => env('REDIS_HOST', 'localhost'), 'host' => menv('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null), 'password' => menv('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379), 'port' => menv('REDIS_PORT', 6379),
'database' => 0, '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' => [ 'failed' => [
'database' => env('DB_CONNECTION', 'mysql'), 'database' => menv('DB_CONNECTION', 'mysql'),
'table' => 'failed_jobs', 'table' => 'failed_jobs',
], ],

View File

@ -9,6 +9,6 @@ return [
| Load them from env to config, preventing cache problems | Load them from env to config, preventing cache problems
| |
*/ */
'cipher' => env('PWD_METHOD', 'SALTED2MD5'), 'cipher' => menv('PWD_METHOD', 'SALTED2MD5'),
'salt' => env('APP_KEY', '') 'salt' => menv('APP_KEY', '')
]; ];

View File

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