轻松缓存 Blade 模板片段
Laravel Blade Cache Directive 是 Ryan Chandler 开发的一个扩展包,它允许你缓存 Blade 的块文件。该软件包提供了一个 @cache
指令,你可以按如下方式使用:
{{-- 提供缓存键和 TTL(默认为 1 小时) --}}
@cache('current_time', 30)
{{ now() }}
@endcache
缓存块将使用 Laravel 的应用程序缓存进行缓存,如果你想以每个模型的方式缓存块,它甚至允许字符串插值:
@cache("user_profile_{$user->id}")
{{ $user->name }}
@endcache
你可能会好奇,{{ now() }}
缓存块示例会产生类似于以下输出的内容:
$__cache_directive_arguments = ['current_time', 300];
if (count($__cache_directive_arguments) === 2) {
[$__cache_directive_key, $__cache_directive_ttl] = $__cache_directive_arguments;
} else {
[$__cache_directive_key] = $__cache_directive_arguments;
$__cache_directive_ttl = config('blade-cache-directive.ttl');
}
if (\Illuminate\Support\Facades\Cache::has($__cache_directive_key)) {
echo \Illuminate\Support\Facades\Cache::get($__cache_directive_key);
} else {
$__cache_directive_buffering = true;
ob_start();
?>
<?php echo e(now()); ?>
<?php
$__cache_directive_buffer = ob_get_clean();
\Illuminate\Support\Facades\Cache::put($__cache_directive_key, $__cache_directive_buffer, $__cache_directive_ttl);
echo $__cache_directive_buffer;
unset($__cache_directive_key, $__cache_directive_ttl, $__cache_directive_buffer, $__cache_directive_buffering, $__cache_directive_arguments);
}
你可以在 GitHub 上了解有关此软件包的更多信息、获取完整的安装说明,并查看 源代码。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。