snicco / better-wp-cache
Requires
- php: ^7.4|^8.0
- cache/simple-cache-bridge: ^1.2.0
- cache/tag-interop: ^1.1
- cache/taggable-cache: 1.2.0
- psr/cache: ^1.0.0
- psr/simple-cache: ^1.0.0
- snicco/better-wp-api: ^2.0
Requires (Dev)
- cache/integration-tests: 0.17.0
- codeception/codeception: ^4.1.29
- lucatume/wp-browser: ~3.1.4
- phpunit/phpunit: ^9.5.13
Conflicts
- snicco/better-wp-cache-bundle: <2.0.0-beta.9
- snicco/better-wp-cli: <2.0.0-beta.9
- snicco/better-wp-cli-testing: <2.0.0-beta.9
- snicco/better-wp-hooks: <2.0.0-beta.9
- snicco/better-wp-hooks-bundle: <2.0.0-beta.9
- snicco/better-wp-mail: <2.0.0-beta.9
- snicco/better-wp-mail-bundle: <2.0.0-beta.9
- snicco/better-wp-mail-testing: <2.0.0-beta.9
- snicco/better-wpdb: <2.0.0-beta.9
- snicco/better-wpdb-bundle: <2.0.0-beta.9
- snicco/blade-bridge: <2.0.0-beta.9
- snicco/blade-bundle: <2.0.0-beta.9
- snicco/content-negotiation-middleware: <2.0.0-beta.9
- snicco/debug-bundle: <2.0.0-beta.9
- snicco/default-headers-middleware: <2.0.0-beta.9
- snicco/eloquent: <2.0.0-beta.9
- snicco/encryption-bundle: <2.0.0-beta.9
- snicco/event-dispatcher: <2.0.0-beta.9
- snicco/event-dispatcher-testing: <2.0.0-beta.9
- snicco/guests-only-middleware: <1.0.0
- snicco/http-routing: <2.0.0-beta.9
- snicco/http-routing-bundle: <2.0.0-beta.9
- snicco/http-routing-testing: <2.0.0-beta.9
- snicco/https-only-middleware: <2.0.0-beta.9
- snicco/illuminate-container-bridge: <2.0.0-beta.9
- snicco/kernel: <2.0.0-beta.9
- snicco/kernel-testing: <2.0.0-beta.9
- snicco/method-override-middleware: <2.0.0-beta.9
- snicco/minimal-logger: <2.0.0-beta.9
- snicco/must-match-route-middleware: <2.0.0-beta.9
- snicco/no-robots-middleware: <2.0.0-beta.9
- snicco/open-redirect-protection-middleware: <2.0.0-beta.9
- snicco/payload-middleware: <2.0.0-beta.9
- snicco/pimple-bridge: <2.0.0-beta.9
- snicco/psr7-error-handler: <2.0.0-beta.9
- snicco/redirect-middleware: <2.0.0-beta.9
- snicco/session: <2.0.0-beta.9
- snicco/session-bundle: <2.0.0-beta.9
- snicco/session-psr16-bridge: <2.0.0-beta.9
- snicco/session-testing: <2.0.0-beta.9
- snicco/session-wp-bridge: <2.0.0-beta.9
- snicco/share-cookies-middleware: <2.0.0-beta.9
- snicco/signed-url: <2.0.0-beta.9
- snicco/signed-url-psr15-bridge: <2.0.0-beta.9
- snicco/signed-url-psr16-bridge: <2.0.0-beta.9
- snicco/signed-url-testing: <2.0.0-beta.9
- snicco/signed-url-wp-bridge: <2.0.0-beta.9
- snicco/str-arr: <2.0.0-beta.9
- snicco/templating: <2.0.0-beta.9
- snicco/templating-bundle: <2.0.0-beta.9
- snicco/testable-clock: <2.0.0-beta.9
- snicco/testing-bundle: <2.0.0-beta.9
- snicco/trailing-slash-middleware: <2.0.0-beta.9
- snicco/wp-auth-only-middleware: <2.0.0-beta.9
- snicco/wp-capability-middleware: <2.0.0-beta.9
- snicco/wp-capapility-middleware: <1.0.0
- snicco/wp-guests-only-middleware: <2.0.0-beta.9
- snicco/wp-nonce-middleware: <2.0.0-beta.9
- dev-master
- v2.0.0-beta.9
- v2.0.0-beta.8
- v2.0.0-beta.7
- v2.0.0-beta.6
- v2.0.0-beta.5
- v2.0.0-beta.4
- v2.0.0-beta.3
- v2.0.0-beta.2
- v2.0.0-beta.1
- v1.10.1
- v1.10.0
- v1.9.1
- v1.9.0
- v1.8.1
- v1.8.0
- v1.7.0
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.0
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- dev-beta
This package is auto-updated.
Last update: 2024-09-07 14:27:48 UTC
README
BetterWPCache 是一个轻量级库,允许您将 持久 WordPress 对象缓存 作为 PSR-16 缓存或 PSR-6 缓存使用。
此外,BetterWPCache 支持 缓存标签。
此库使用 Redis Object Cache 插件(由 Till Krüss 提供)对官方 php-cache/integration-tests 进行了 100% 的集成测试。
目录
动机
我们开发这个库是因为许多 WordPress 相关的 Snicco 项目 需要某种形式的缓存。
为了给用户提供最大的灵活性,它们都只依赖于 PSR 缓存接口。
但是使用这些接口意味着无法在已连接的 WP_Object_Cache
中使用这些组件。
BetterWPCache 解决了这个问题。
此库有三个主要用途
- 您正在开发一个 分布式 WordPress 库,不想依赖
WP_Object_Cache
。 - 您正在使用任何依赖于 PSR 缓存接口的 PHP 包,并且想使用您的 WordPress 缓存插件。
- 您需要 缓存标签,这是
WP_Object_Cache
不支持的。
理想情况下,WordPress 核心会用 PSR 缓存接口替换自定义的 WP_Object_Cache
,这样就不需要这个库了。同时 BetterWPCache 将会完成这项工作。
安装
composer require snicco/better-wp-cache
使用方法
这个是否与任何缓存插件兼容?
简短回答: 是的!
详细回答:只要您的缓存插件正确实现了 wp_cache_xxx
函数。此库只使用 官方 WordPress 缓存函数。
创建 PSR-6 缓存
这是如何从您最喜欢的 WordPress 缓存插件创建 PSR-6 缓存。
use Snicco\Component\BetterWPCache\CacheFactory; $cache_group = 'my_plugin'; $psr_6_cache = CacheFactory::psr6($cache_group);
创建 PSR-16 缓存
这是如何从您最喜欢的 WordPress 缓存插件创建 PSR-16 缓存。
use Snicco\Component\BetterWPCache\CacheFactory; $cache_group = 'my_plugin'; $psr_16_cache = CacheFactory::psr16($cache_group);
缓存标签
缓存标签需要 PSR-6 缓存。
use Snicco\Component\BetterWPCache\CacheFactory; $cache_group = 'my_plugin'; $psr_6_cache = CacheFactory::psr6($cache_group); $taggable_cache = CacheFactory::taggable($psr_6_cache);
$taggable_cache
是一个 TaggableCacheItemPoolInterface 的实例,它正在成为 PSR 标准。
摘自 官方文档
use Snicco\Component\BetterWPCache\CacheFactory; $cache = CacheFactory::taggable(CacheFactory::psr6('my_plugin')); $item = $cache->getItem('tobias'); $item->set('value')->setTags(['tag0', 'tag1']) $cache->save($item); $item = $cache->getItem('aaron'); $item->set('value')->setTags(['tag0']); $cache->save($item); // Remove everything tagged with 'tag1' $cache->invalidateTags(['tag1']); $cache->getItem('tobias')->isHit(); // false $cache->getItem('aaron')->isHit(); // true $item = $cache->getItem('aaron'); echo $item->getPreviousTags(); // array('tag0') // No tags will be saved again. This is the same as saving // an item with no tags. $cache->save($item);
贡献
此存储库是 Snicco 项目 开发存储库的只读分割。
报告问题和发送 pull request
请在 Snicco monorepo 中报告问题。
安全性
如果您在 BetterWPCache 中发现安全漏洞,请遵循我们的 披露程序。