我正在寻找如何用流明执行等效的Laravel命令
php artisan config:cache
这似乎不是作为Lumen工艺师的命令可用的?
更新我找到了this related question但这仅表示它不存在。
我目前在lumen和DotEnv库读取.env文件中遇到快速请求时遇到麻烦。这会导致无法读取.env文件,并且流明会使用其默认设置,这对我的应用程序是不正确的。
我不愿意将config:cache函数从laravel复制到我的lumen应用程序。这似乎不对吗?流明的处理方式是什么?
更新2在研究了Lumen和Illuminate代码之后,似乎更可靠的方法是定义具有所需值的文件(例如config / database.php),而不使用.env文件?
您不必因问题而在Lumen中缓存配置。对于Windows + WAPM,dotenv
问题有一个不同的解决方案(可能其他环境也会受到影响,请参见下面的链接)。
您必须为现在具有相同名称的.env
变量赋予不同的名称,并在各自的config/<configname>.php
的文件中更改变量名称。示例如下。
假设您在同一服务器下有两个应用程序,在WAMP下有不同的虚拟主机。一个应用是Lumen API A,另一个是Lumen API B。
[该问题来自以下事实:当HTTP请求到达被调用方时,被调用方(分别为API B).env
变量不会被被调用方(分别为API B).env
变量覆盖。但这仅在这些变量具有相同的名称时。
即您的调用方(API A).env
变量正在内存中读取
DB_DATABASE=<api_a_1>
DB_USERNAME=<api_a_2>
尽管被呼叫者被呼叫者.env
文件具有如下所示,但不会被被呼叫者的(API B)端代替:
DB_DATABASE=<api_b_1>
DB_USERNAME=<api_b_2>
解决方案是使用不同的名称命名,然后将新名称放入config/database.php
。像这样:
API A:
# .env file
API_A_DB_DATABASE=<api_a_1>
API_A_DB_USERNAME=<api_a_2>
// config/database.php file
...
// ... other keys
'connections'=> [
// ... other keys
'mysql'=> [
'database' => env('API_A_DB_DATABASE', 'forge'),
'username' => env('API_A_DB_USERNAME', 'forge'),
]
]
...
我建议您阅读this explanation回购问题列表上的laravel/framework
。如果调用方是Laravel应用,则可以通过php artisan config:cache
解决相同的问题,请参阅此SO帖子的详细信息。