zvps / laravel-4-env-polyfill
启用 env() 函数,用于提供默认环境值和从 $_ENV 中检索变量。
v1.0.1
2018-02-13 09:00 UTC
Requires
- laravel/framework: 4.2.*
This package is auto-updated.
Last update: 2024-09-12 05:35:50 UTC
README
Laravel 5 有一个很棒的功能 env()
,它可以在变量为空/空/空白时分配默认变量。
Laravel 4 应用通常缺少这个功能,如果没有运行在 >= PHP 7.0
,则不能使用 ?? 表示法来保持 (isset($_ENV[thing))) ? $_ENV[thing] : default
简洁明了,例如 $_ENV[thing] ?? default
。
安装
composer require zvps/laravel-4-env-polyfill
设置
请确保在 boostrap/start.php
中开始使用 detectEnvironment 功能,以便 .env.local.php
等文件可用并正确选择。
$env = $app->detectEnvironment(array(
'local' => array('your-machine-name'),
));
接下来设置 .env 文件和 .env.example.php,以便记录所需默认值。
.env.local.php
<?php
return array(
'DATABASE_NAME' => 'my_database',
'DATABASE_USER' => 'username',
'DATABASE_PASSWORD' => 'totally_secure_password'
);
接下来更新 app/config/*.php
中的所有文件,以使用 env() polyfill
没有 polyfill
'host' => if(isset($_ENV['DATABASEHOST']) ? $_ENV['DATABASE_HOST'] : 'localhost',
'database' => if(isset($_ENV['DATABASE_NAME']) ? $_ENV['DATABASE_NAME'] : 'default_db',
'username' => if(isset($_ENV['DATABASE_USERNAME']) ? $_ENV['DATABASE_USERNAME'] : 'default_user',
'password' => if(isset($_ENV['DATABASE_PASSWORD']) ? $_ENV['DATABASE_PASSWORD'] : 'default_pass',
使用 polyfill
'host' => env('DATABASE_HOST', 'localhost')
'database' => env('DATABASE_NAME', 'default_db'),
'username' => env('DATABASE_USER', 'default_user'),
'password' => env('DATABASE_PASSWORD', 'default_pass')