如何在其他配置文件中获取配置文件值 - Laravel 5

时间:2015-12-08 19:20:27

标签: php laravel oauth config

我有两个配置文件,“ config / oauth-5-laravel.php ”和“ config / wtv.php ”,我需要获取值将wtv.php文件放入另一个名为oauth-5-laravel.php的文件中,如下所示:

“的OAuth -5- laravel.php”:

'consumers' => [

    'Facebook' => [
        'client_id'     => config('wtv.social.facebook.client_id'),
        'client_secret' => config('wtv.social.facebook.client_secret'),
        'scope'         => ['email', 'public_profile', 'user_location', 'user_hometown', 'user_birthday', 'user_about_me'],
    ],

    'Google' => [
        'client_id'     => config('wtv.social.google.client_id'),
        'client_secret' => config('wtv.social.google.client_secret'),
        'scope'         => ['profile', 'email'],
    ],

    'Twitter' => [
        'client_id'     => config('wtv.social.twitter.client_id'),
        'client_secret' => config('wtv.social.twitter.client_secret'),
    ],

]

“wtv.php”:

'social' => [

    'facebook' => [
        'client_id' => '1696561373912147',
        'client_secret' => '496dbca22495c95ddb699c2a1f0397cf',
    ],

    'google' => [
        'client_id' => '647043320420-tted6rbtl78iodemmt2o2nlglbu7gvsg.apps.googleusercontent.com',
        'client_secret' => 'PLpQ5lv5lT_wV9ElXzAKfrOD',
    ],

    'twitter' => [
        'client_id' => 'dQYHIZDQZGDSLZy4ZDto9lxBh',
        'client_secret' => 'je1aFIFbkH4UpqPDZgEqoCIAg1Ul6lO67JoycDAzS2EzCZqszk',
    ],

],

并没有工作。

1 个答案:

答案 0 :(得分:2)

坏消息:您无法在配置文件中使用config(),因为一个配置文件无法确保已加载其他配置文件。

好消息:这是执行任务的正确方法。

首先,在wtv.php中有一个名为client_secret的数组键。你看,秘密。所有机密数据都不应该在配置文件和VCS存储库中(例如Git存储库)。

相反,应该使用不在repo中的.env文件。

您的案例将如下所示:

<强> .ENV

facebook_client_id=1696561373912147
facebook_client_secret=496dbca22495c95ddb699c2a1f0397cf
...

<强>的OAuth -5- laravel.php

&#39;消费者&#39; =&GT; [

'Facebook' => [
    'client_id'     => env('facebook_client_id'),
    'client_secret' => env('facebook_client_secret'),
...

<强> wtv.php

&#39;社会&#39; =&GT; [

'facebook' => [
    'client_id' => env('facebook_client_id'),
    'client_secret' => env('facebook_client_secret'),
...

您还可以通过更改.env文件中的变量,使用不同的数据来测试(dev)和实时(生产)服务器。

.env文件不是php文件,而是常规文本文件,将由PHP dotenv解析。

详细了解环境配置:http://laravel.com/docs/5.1#environment-configuration