【问题标题】:Lumen : use config constant file from other folderLumen:使用其他文件夹中的配置常量文件
【发布时间】:2017-03-24 07:18:07
【问题描述】:

我有 laravel 和 lumen 在服务器上并行运行。 结构就像

var/www/application/laravel
var/www/application/lumen

现在 laravel 应用程序已经为成熟的网站开发。 lumen 文件夹用于 web 服务。现在config 文件夹中有许多常量文件,例如config>messages.php,我想重用它们而不用流明重写。但目前我只能看到我只能访问 lumen 中的 lumen 常量,无法访问 laravel 常量文件。

如config('messages.status');只能在messages.php在lumen时访问值。

知道如何配置流明代码以包含 laravel 配置常量文件吗?

附言流明版本:5.4,laravel 版本:5.2

谢谢。

【问题讨论】:

  • 您是否尝试过将 laravel 配置的符号链接到 lumens 文件夹中?

标签: php laravel laravel-5 laravel-5.2 lumen


【解决方案1】:

你可以在 Lumen 中加载所有 Laravel 应用配置,方法是创建一个新的配置文件并要求所有文件,如下所示:

/var/www/application/lumen/config/custom.php

<?php

$path = '../../laravel/app/config/';
$config = [];

foreach ( scandir($path) as $filename ) {
    $filePath = $path . '/' . $filename;

    if (is_file($filePath)) {
        $config += require_once $filePath;
    }
}

return $config;

然后您就可以像 config('custom.key'); 这样在您的 Lumen 中访问它们。

【讨论】:

    【解决方案2】:

    没错,配置文件有预定义的路径。看看vendor/laravel/lumen-framework/src/Application.php。那里有一个getConfigurationPath 方法。

    基本上,Lumen 会尝试从 你的 config 文件夹加载配置文件,如果没有找到,则会从 /vendor/laravel/lumen-framework/config/*

    加载

    我建议您对它们进行符号链接。因为我没有看到任何为此修改 Lumen 核心的方法(实际上,是的,您可以覆盖 Application 类并在引导程序中实例化它,但您应该注意其中的 __DIR__ 常量之类的东西)。

    更新

    也许这更容易。看看这个循环:Lumen: print custom config return NULL。这家伙正在使用$app-&gt;configure($file); 方法循环加载每个配置文件。

    实际上,这里看起来像是 TheFallen 解决方案。

    【讨论】:

      猜你喜欢
      • 2014-10-26
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 2022-01-10
      相关资源
      最近更新 更多