链缓存适配器

编辑本页

链缓存适配器

该适配器允许组合任意数量的其他适配器可用的缓存适配器.缓存项从包含它们的第一个适配器获取,缓存项保存到所有给定的适配器。这公开了一种创建分层缓存的简单而有效的方法。

必须为ChainAdapter提供一个适配器数组,并可选地提供一个默认的缓存生命期作为其构造函数参数:

1 2 3 4 5 6 7 8 9
使用欧宝娱乐app下载地址组件缓存适配器ChainAdapter缓存ChainAdapter (//用于获取缓存项的适配器的有序列表数组适配器//从下层适配器传播到上层适配器的项目的默认生存期defaultLifetime0);

请注意

当在第一个适配器中没有找到项,但在下一个适配器中找到项时,该适配器确保将提取的项保存到以前丢失的所有适配器中。

下面的例子展示了如何使用最快和最慢的存储引擎创建一个链适配器实例,ApcuAdapter而且FilesystemAdapter尊重:

1 2 3 4 5 6 7 8
使用欧宝娱乐app下载地址组件缓存适配器ApcuAdapter使用欧宝娱乐app下载地址组件缓存适配器ChainAdapter使用欧宝娱乐app下载地址组件缓存适配器FilesystemAdapter缓存ChainAdapter ([ApcuAdapter (),FilesystemAdapter ()));

当调用这个适配器时删除()方法,则将调用委托给其所有兼容的缓存适配器。混合使用这两个适配器是安全的,做实现PruneableInterface,因为不兼容的适配器会被默默地忽略:

1 2 3 4 5 6 7 8 9 10 11
使用欧宝娱乐app下载地址组件缓存适配器ApcuAdapter使用欧宝娱乐app下载地址组件缓存适配器ChainAdapter使用欧宝娱乐app下载地址组件缓存适配器FilesystemAdapter缓存ChainAdapter ([ApcuAdapter (),//不实现PruneableInterfaceFilesystemAdapter (),//实现PruneableInterface]);// prune将代理对FilesystemAdapter的调用,同时静默跳过ApcuAdapter缓存->删除();
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
欧宝娱乐app下载地址Symfony 5.4支持通过私人Packagist