laravel 是否缓存配置?

Does laravel cache the 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');

这只是一个例子。在实际代码中,我在一个 class 中获得了配置。后来我在另一个 class.

中再次获得此配置

在启动时,Laravel 读取所有配置文件并将它们的值保存在应用程序实例中。所以调用 config('app.configKey') 不会加载 config/app.php 文件,即使是第一次调用它。

在您的场景中,这实际上取决于 /* Some code here ... */ 背后的代码的作用。

想象一下调用一些方法,例如$this->changeConfigValue(),更改 app.configKey 的配置值。实际上它所做的是它改变了应用程序实例中的值,它不会覆盖你的配置文件。

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

这不是缓存。

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

php artisan config:cache

这将创建文件 bootstrap/cache/config.php,它将所有配置保存在一个文件中。 启动时,只读取一个文件比读取整个配置目录更快(这就是缓存的作用:P)。

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