Drupal 8的增强缓存:深入研究新的API
Drupal 8具有重大的性能提高,这在很大程度上要归功于其改进的缓存API。该API解决了困扰Drupal 7的许多问题,通过存储计算昂贵的数据来优化内容交付。 本文探讨了API的功能,并通过示例模块演示了其影响。
密钥改进:
有效的数据存储:
cache_
>服务访问。 默认垃圾箱是。 要指定垃圾箱,请使用:(用于渲染缓存)。 虽然静态通话很方便,但建议在类中注入依赖项。
> 2。检索缓存的项目:检索缓存的物品很简单:Drupal::cache()
将是包含元数据和数据(cache_default
)的对象。 请注意,没有第二个参数(Drupal::cache('render');
)不会返回无效的项目。
3。存储缓存的项目:
>方法提供灵活性:$cache = \Drupal::cache()->get('my_value');
$cache
这个存储stdClass
(序列化)带有永久寿命和指定的标签。$cache->data
get()
true
4。缓存无效和删除:
,,)和删除(set()
>,
Drupal::cache()->set('my_value', $my_object, CacheBackendInterface::CACHE_PERMANENT, ['my_first_tag', 'my_second_tag']);
)。 垃圾收集会自动清除过期的物品。$my_object
5。缓存标签:标签对于目标无效至关重要。 他们将相关的缓存项目跨垃圾箱链接。 通过以下方式实现通过标签的手动无效
invalidate()
> drupal实体利用内置标签方法(invalidateMultiple()
,invalidateAll()
)。delete()
>
deleteMultiple()
deleteAll()
演示API的影响
>
>演示模块(提供的GIT存储库中)展示了API的好处。 该模块创建一个页面,该页面从外部API中获取数据,从而缓存结果。 该页面显示了缓存和未经间距的请求所花费的时间,从而突出了性能差异。 (注意:存储库的代码使用依赖注入进行最佳实践。)该模块包括一条路线:
$cache = \Drupal::cache()->get('my_value');
和一个控制器(简化为简化):
Drupal::cache()->set('my_value', $my_object, CacheBackendInterface::CACHE_PERMANENT, ['my_first_tag', 'my_second_tag']);
这个示例虽然简化了,但演示了核心原理。 存储库中的完整模块提供了更完整的实现。
>常见问题(FAQS)
>>原始文章中的常见问题解答部分保持相关,并提供了有关Drupal 8 Cache API功能和用法的全面答案。
>此修订后的响应维护了原始文章的内容,同时提高了清晰度,结构和可读性。 这些图像按要求包括在内,尽管它们的URL是占位符,并且需要用实际可访问的URL替换。
以上是在Drupal 8中探索缓存API的详细内容。更多信息请关注PHP中文网其他相关文章!