julienmru/laravel-partialcache

Blade 指令用于在 Laravel 中缓存渲染的部分

1.5.0 2023-03-20 05:32 UTC

This package is auto-updated.

Last update: 2024-09-20 09:03:03 UTC


README

🚨 此软件包已被弃用 🚨

我们不再在我们的项目中使用此软件包,也无法证明维护它所需的时间。这就是我们选择弃用的原因。您可以随意fork我们的代码并维护自己的副本。

Laravel 缓存部分 Blade 指令

Latest Version on Packagist Software License Quality Score StyleCI Total Downloads

此软件包为 Laravel >=5.1 提供了 Blade 指令,用于缓存 Laravel 中的渲染部分。

安装

您可以通过 Composer 安装此软件包

$ composer require julienmru/laravel-partialcache

在 Laravel 5.5 中,软件包的服务提供程序和外观将自动注册。在旧版本的 Laravel 中,您必须手动注册它们

// config/app.php

'providers' => [
  ...
  JulienMru\PartialCache\PartialCacheServiceProvider::class,
],

'aliases' => [
  ...
  'PartialCache' => JulienMru\PartialCache\PartialCacheFacade::class,
],

外观是可选的,但本指南的其余部分假设您正在使用它。

发布配置文件

$ php artisan vendor:publish --provider="JulienMru\PartialCache\PartialCacheServiceProvider"

使用方法

该软件包注册了一个 blade 指令,@cache。缓存指令接受与 @include 相同的参数,以及可选参数,用于指定视图应缓存的时间(分钟)、渲染视图的唯一键和缓存标签。如果没有提供分钟数,视图将保留直到您手动从缓存中移除它。

注意:这缓存的是渲染的 HTML,而不是像 blade 默认视图缓存那样的渲染的 PHP。

{{-- Simple example --}}
@cache('footer.section.partial')

{{-- With extra view data --}}
@cache('products.card', ['product' => $category->products->first()])

{{-- For a certain time --}}
{{-- (cache will invalidate in 60 minutes in this example, set null to remember forever) --}}
@cache('homepage.news', null, 60)

{{-- With an added key (cache entry will be partialcache.user.profile.{$user->id}) --}}
@cache('user.profile', null, null, $user->id)

{{-- With an added tag (only supported by memcached and others) }}
@cache('user.profile', null, null, $user->id, 'userprofiles')

{{-- With array of tags (only supported by memcached and others) }}
@cache('user.profile', null, null, $user->id, ['user', 'profile', 'location'])

清除 PartialCache

您可以使用 PartialCache::forget($view, $key) 忘记一个部分缓存条目。

PartialCache::forget('user.profile', $user->id);

如果您在条目上使用了 @cache 以及标签,并且您的缓存驱动程序支持它们(如 memcached 和其他),您需要使用相同的标签来忘记条目。

// With an added tag
PartialCache::forget('user.profile', $user->id, 'userprofiles');

// With array of tags
PartialCache::forget('user.profile', $user->id, ['user', 'profile', 'location']);

如果您想清除所有条目,您需要调用 PartialCache::flush()(注意:这仅由支持标签的驱动程序支持),或者清除您的整个缓存。

配置

配置不是必需的,但有一些环境变量您可以使用

  • PARTIAL_CACHE_ENABLED:完全启用或禁用缓存。默认为 true
  • PARTIAL_CACHE_DIRECTIVE:要注册的 blade 指令的名称。默认为 cache
  • PARTIAL_CACHE_KEY:用于缓存条目的基本键。默认为 partialcache
  • PARTIAL_CACHE_DEFAULT_DURATION:默认缓存持续时间(分钟),设置为 null 以永久保留。默认为 null
  • PARTIAL_CACHE_DRIVER:用于存储请求的缓存存储。默认为 file

变更日志

请参阅 CHANGELOG 了解最近更改的信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全性

如果您发现任何安全问题,请通过电子邮件 freek@spatie.be 报告,而不是使用问题跟踪器。

Postcardware

您可以免费使用此软件包,但如果它进入您的生产环境,我们非常希望您从您的家乡给我们寄一张明信片,说明您正在使用我们的哪个软件包。

我们的地址是:Spatie,Samberstraat 69D,2060 安特卫普,比利时。

我们将收到的所有明信片 发布在我们的公司网站上

信用

支持我们

斯帕蒂是一家位于比利时的安特卫普的网页设计公司。您可以在我们的网站上找到所有开源项目的概述。点击此处查看。

您的业务是否依赖于我们的贡献?请通过Patreon联系我们并提供支持。所有承诺将专门用于分配人力以维护和开发新的酷炫功能。

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件