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');

这只是一个例子。在实际代码中,我在一个类中获得配置。稍后,我在另一个类中再次获得此配置。

在启动时,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-缓存