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

Lê *_*ăng 5 yii2

我想创建一个文件.env:

 FACEBOOK_CLIENT_ID=*****
 FACEBOOK_CLIENT_SECRET=*****
Run Code Online (Sandbox Code Playgroud)

并使用变量进行配置

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

Lê *_*ăng 6

我找到了解决方案。

我使用软件包 vlucas / phpdotenv

谢谢大家

  • 我尝试使用它,但不知道在哪里加载它以在任何地方使用。你是怎么做到的 ? (2认同)

cha*_*kev 2

您可以通过利用环境常量来存档它。如果您使用 Yii2 Advanced,当您将应用程序初始化为开发或生产时,yii 在您的 index.php 入口脚本中将常量 YII_ENV 设置为开发或生产。

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

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

defined('YII_ENV') or define('YII_ENV', 'dev');
Run Code Online (Sandbox Code Playgroud)

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

'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'),
],
Run Code Online (Sandbox Code Playgroud)

有关环境常量 的更多详细信息,请参阅http://www.yiiframework.com/doc-2.0/guide-concept-configurations.html#environment-constants