Ped*_*iro 5 caching yaml symfony
我有几个 YAML 文件要从服务中解析。
但是在每次点击页面时,这些 YAML 文件都会被解析并转换为 PHP 数组。我知道 Symfony 会缓存默认的 YAML 文件,因此它不会在每个页面点击时解析每个 yaml 文件。
我想知道这里的最佳做法是什么。有没有办法让我的 YAML 文件只解析一次并与 Symfony2 的缓存一起存储?如果是这样,能否请我指出正确的方向?
这完全取决于您想要如何进行缓存。
HTTP 缓存实际上仅在 Web 上下文中以及解析这些文件并将其添加到数组的操作的特定输出相对静态时才有意义。如果这两个条件都满足,那么这是最好的方法。
您可以轻松地使用 APC进行缓存。它使得缓存变量的内容变得非常简单。Doctrine 提供了围绕 APC 的缓存抽象,或者您可以使用本机 PHP 函数。
在config.yml中
services:
cache:
class: Doctrine\Common\Cache\ApcCache
Run Code Online (Sandbox Code Playgroud)
然后在您的控制器或服务中:
if ($yamlArray = $this->get('cache')->fetch('foo')) {
$yamlArray = unserialize($yamlArray);
} else {
// do the work
$this->get('cache')->save('foo', serialize($yamlArray));
}
Run Code Online (Sandbox Code Playgroud)
有关 cache_clearer 的详细信息(已添加但未详细记录)。
| 归档时间: |
|
| 查看次数: |
3518 次 |
| 最近记录: |