如何在 Laravel-4 中包含不同环境的自定义配置

Posted

技术标签:

【中文标题】如何在 Laravel-4 中包含不同环境的自定义配置【英文标题】:How to include custom config for different environment in Laravel-4 【发布时间】:2013-07-14 08:28:11 【问题描述】:
$env = $app->detectEnvironment(array(

    'local' => array('*.local'),

));

原始配置文件可以在我的本地环境中使用,例如database.phpcache.php 等。但是我的自定义配置并没有在我的本地环境中使用。

有没有办法在上面添加我的自定义配置?

【问题讨论】:

我也想知道这个:D 你检查过这个答案吗? ***.com/q/13860283/1317935 是的,我知道了,但我的问题是,这里只使用 laravel 的默认配置,而不是自定义配置,我的自定义配置称为“hybridAuth”我放在那里 facebook auth、twitter auth 等 【参考方案1】:

我知道这有点晚了,但它可能会帮助那些最终出现在这个线程中的人。要回答您加载自定义配置文件的问题,您可以找到更多详细信息here。我在文档中的任何地方都没有看到它,但是您只需在 config/ 中使用您的环境名称创建一个新目录。将要覆盖的文件复制到新目录并编辑设置。当您在该文件中时,您还可以删除未被覆盖的所有内容。

【讨论】:

【参考方案2】:

如果您在 Linux 和 Mac 上,您可以使用“主机名”终端命令确定您的“主机名”并在数组中使用它。

【讨论】:

【参考方案3】:

首先,您需要定义什么是“本地”环境

$env = $app->detectEnvironment(array(
    // everything that contains 'localhost' or '127.0.0.1'
    // in URL will be considered to run in local env.
    'local' => array('localhost', '127.0.0.1'),

));

然后,您需要在app/config 中创建名为local 的目录。如果要覆盖本地环境中的数据库设置。创建文件:app/config/local/database.php 并覆盖该文件中的设置,例如:

'connections' => array(

    'mysql' => array(
        'username'  => 'otherUserName',
        'password'  => 'otherPassword',
    ),

), 

在此文件中,您无需指定所有选项,只需指定与生产/基本配置不同的选项即可。

更多信息在官方docs

【讨论】:

"原始配置文件可以在我的本地环境中使用,如 database.php、cache.php 等。" 我在我的问题中说,我的问题是我在里面制作的自定义文件在配置文件夹中,它不会包含在环境更改中。还是谢谢 本地环境没有指定。尝试删除'*.',尝试'local' => array('localhost'),,这对我有用!您用于本地访问应用程序的 URL 是什么?它的格式是否类似于http://subdomain.localhost/ @Andreyco 我需要定义我的计算机名称(对于工匠)和正确的域:'local' => array('*.dev', 'Eon.local'), 对于包这是:app/config/packages/author/package/environment/config.phpgithub.com/laravel/framework/issues/1255

以上是关于如何在 Laravel-4 中包含不同环境的自定义配置的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的自定义类型中包含非命名模块 TS 定义

如何在我的自定义小部件模板中包含内置的 django 小部件模板?

在 Simulink 的自定义代码部分中包含库

在 Simulink 的自定义代码部分中包含 c 库

如何在 NetBeans GUI Builder 中包含自定义面板?

如何在 ConfigurationSection 中包含简单集合