Lumen如何缓存配置?

Lumen如何缓存配置?,lumen,Lumen,我正在寻找如何使用Lumen执行等效的Laravel命令 php artisan config:cache 这似乎不能作为Lumen artisan命令使用 更新 我找到了 但这只是说它不存在 我目前在lumen和DotEnv库读取.env文件以快速请求时遇到问题。这会导致不读取.env文件,lumen使用其默认设置,这对我的应用程序不正确 我很犹豫是否要将config:cache函数从laravel复制到我的lumen应用程序。这似乎不对?管腔的处理方法是什么 更新2 在深入研究Lumen和

我正在寻找如何使用Lumen执行等效的Laravel命令

php artisan config:cache
这似乎不能作为Lumen artisan命令使用

更新 我找到了 但这只是说它不存在

我目前在lumen和DotEnv库读取.env文件以快速请求时遇到问题。这会导致不读取.env文件,lumen使用其默认设置,这对我的应用程序不正确

我很犹豫是否要将config:cache函数从laravel复制到我的lumen应用程序。这似乎不对?管腔的处理方法是什么

更新2
在深入研究Lumen和Lightning代码后,似乎可以更可靠地定义具有所需值的文件(例如config/database.php),而不使用.env文件?

您不必为您的问题将配置缓存在Lumen中。对于WAMP的
dotenv
问题,有一个不同的解决方案(可能其他环境也会受到影响,请参见下面的第一个链接)

现在必须为共享相同名称的
.env
变量指定不同的名称。然后,您必须更改相应的
config/.php
文件中的变量名称。下面是一个例子

例子 假设您在同一服务器、不同虚拟主机(在WAMP下)下有2个应用程序。一个应用程序是Lumen API A,另一个是Lumen API B

问题来自这样一个事实:当HTTP请求到达被调用方时,调用方(API A)
.env
变量不会被被被调用方(分别是API B)
.env
变量覆盖。但这只是当这些变量具有相同的名称时

即,调用方(API A)
.env
变量正在内存中读取

DB_DATABASE=<api_a_1>
DB_USERNAME=<api_a_2>
解决方案是以不同的方式命名它们,并将新名称放入
config/database.php
。像这样:

API A

# .env file
API_A_DB_DATABASE=<api_a_1>
API_A_DB_USERNAME=<api_a_2>
API B

# .env file
API_A_DB_DATABASE=<api_a_1>
API_A_DB_USERNAME=<api_a_2>
如果API B也可以是此服务器中其他Lumen API的调用者,则可以保留默认变量名或为其分配前缀
API_B_

现在,您不需要在API A调用者端缓存配置,因为API B被调用者端变量的名称不同,因此始终会被读入内存

细节
我建议阅读
laravel/framework
repo问题列表。如果调用方是Laravel应用程序,您可以通过
php artisan config:cache
修复相同的问题,请参阅本文的详细信息。

Hi,您是否获得了有关问题的更新?现在,我似乎也遇到了同样的问题,您是否创建了config/database.php文件?是的,刚刚创建了config/database.php文件,我添加了$app->configure('database');在我的bootstrap/app.php和config/database.php文件中,我遗漏了一些东西,但这些文件不起作用?谢谢你的支持。我不需要$app->configure('database')。基本上,我没有.env文件。相反,我只是将config/database.php中的生产值硬编码为env()调用的默认选项。幸运的是,对于我的简单应用程序,我使用的是本地sqlite,所以我不需要存储数据库密码。