【问题标题】:loading config class in start.php in Laravel在 Laravel 的 start.php 中加载配置类
【发布时间】:2014-08-23 13:12:13
【问题描述】:

在 laravel4 的 start.php 文件中...有这个代码

$env = $app->detectEnvironment(function () {
$environmentList = array(
    'staging'     => Config::get('program.staging'),
    'production'  => Config::get('program.production'),
    'development' => Config::get('program.development')
); 
});

致命错误:在第 39 行的 /var/www/vhosts/engine.domain.com/app/start.php 中找不到类“配置”

我想知道如何在此之前加载“配置”类...在启动文件中

【问题讨论】:

  • 您从什么环境加载配置?技巧问题.. Laravel 在尝试检测环境时可能不知道您所处的 what 环境,因此能够允许它加载配置值是没有意义的。跨度>
  • 如果你在returning$app之前添加这段代码会怎样
  • Config::get() 依赖于detectEnvironment() 来了解您所处的环境,以便为您提供正确的配置。但是您的detectEnvironment() 取决于Config::get()。即使您设法通过“找不到类配置”,我认为您将面临更多问题。此时你真的需要使用Config吗?
  • 有点跑题了……您也没有从该匿名函数返回任何内容。它应该返回一个简单的字符串到detectEnvironment()。您能告诉我们更多使用Config::get() 来实现的目标吗?

标签: php laravel laravel-4


【解决方案1】:

我试图做的是根据 url 为不同的合作伙伴加载不同的服务器以进行登台和生产。

我试图这样做的方式造成了一个悖论..所以我这样做了

$program = (object) include 'config/program.php';

$env = $app->detectEnvironment(function () use ($program){
$environmentList = array(
    'staging'     => array($program->staging),
    'production'  => array($program->production),
    'development' => array($program->development)
);
});

只是不要在这里使用 Config:: ... 将值存储在变量中。

【讨论】:

  • -1 编辑你的问题,不要用答案来扩展你的问题
猜你喜欢
  • 1970-01-01
  • 2014-05-10
  • 2019-08-27
  • 2015-03-29
  • 1970-01-01
  • 2014-11-22
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
相关资源
最近更新 更多