laravel是否缓存配置?

时间:2015-11-27 17:09:42

标签: php laravel config

说,我第一次得到config('app.configKey')的配置。 Laravel加载文件应用程序并获取所需的密钥。如果我下次再调用它,laravel会再次加载文件吗?或者它存储值?

我想知道我是否应该写:

$value = config('app.key');
/* Some code here ... */
$anotherVar = $value;

或:

$value = config('app.key');
/* Some code here ... */
$anotherVar = config('app.key');

这只是一个例子。在实际代码中,我在一个类中获得配置。后来我又在另一堂课中得到了这个配置。

1 个答案:

答案 0 :(得分:4)

在启动时,Laravel会读取所有配置文件并在Application实例中保存它们的值。因此,即使第一次调用config('app.configKey'),调用config/app.php也不会加载/* Some code here ... */文件。

在您的方案中,它实际上取决于$this->changeConfigValue()背后的代码。

想象一下调用某种方法,例如app.configKey,用于更改$anotherVar的配置值。它实际上做的是它改变了Application实例中的值,它不会覆盖你的配置文件。

在您的第一个代码示例中,$value始终等于$anotherVar。 但是在第二个代码示例中,$this->changeConfigValue()的值将再次从App实例中读取,并且等于php artisan config:cache设置值的任何值。

这不是缓存。

Laravel提供了一种缓存配置的方法。您可以使用工匠命令手动执行此操作:

bootstrap/cache/config.php

这将创建文件{{1}},它将您的所有配置保存在一个文件中。 在启动时,只读取一个文件而不是整个配置目录更快(这就是缓存的用途:P)。

http://laravel.com/docs/5.1/installation#configuration-caching