如何创建和使用环境变量.env yii2

时间:2016-03-20 23:54:38

标签: yii2

我想创建一个文件.env:

 FACEBOOK_CLIENT_ID=*****
 FACEBOOK_CLIENT_SECRET=*****

并使用变量进行配置

'facebook' => [
                'class' => 'yii\authclient\clients\Facebook',
                'clientId' => env('FACEBOOK_CLIENT_ID'),
                'clientSecret' => env('FACEBOOK_CLIENT_SECRET'),
            ],

3 个答案:

答案 0 :(得分:5)

我找到了解决方案。

我使用包vlucas/phpdotenv

感谢所有

答案 1 :(得分:2)

您可以通过使用环境常量对此进行归档。如果在将应用程序初始化为dev或生产时使用Yii2高级,则在index.php条目脚本中将yii_ENV设置为dev或production。

如果您使用的是yii basic,您可以根据您的环境进行设置。例如,我们想为dev。

定义配置

我们将继续编辑/web/index.php到

defined('YII_ENV') or define('YII_ENV', 'dev');

然后在我们的配置文件中,我们将有以下

'facebook' => [
    'class' => 'dektrium\user\clients\Facebook',
    'clientId' => (YII_ENV_DEV ? 'Your key when in developent' : 'Your Key if not in developement'),
    'clientSecret' => (YII_ENV_DEV ? 'Your key when in developent' : 'Your Key if not in developement'),
],

有关环境常量 http://www.yiiframework.com/doc-2.0/guide-concept-configurations.html#environment-constants

的更多详情,请参阅此内容

答案 2 :(得分:0)

您可以使用Symfony提供的dotenv软件包。 https://symfony.com/doc/current/components/dotenv.html

在PHP文件中使用它。

use Symfony\Component\Dotenv\Dotenv;

$dotenv = new Dotenv();
$dotenv->load(__DIR__.'/.env');

// You can also load several files
$dotenv->load(__DIR__.'/.env', __DIR__.'/.env.dev');

.env文件

DB_USER=root
DB_PASS=pass

从.env文件访问变量

$dbUser = $_ENV['DB_USER'];
// you can also use ``$_SERVER``