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
说,我第一次使用 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