helick / cache-helpers
WordPress 对象缓存和暂存辅助工具
v1.1.0
2019-07-31 17:07 UTC
Requires
- php: >=7.1
- composer/installers: ^1.6
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-29 05:07:00 UTC
README
WordPress 对象缓存和暂存辅助工具。
要求
在继续之前,请确保已安装所有依赖项
安装
通过 Composer
$ composer require helick/cache-helpers
用法
此软件包为 WordPress 提供以下功能
cache_remember()cache_forget()transient_remember()transient_forget()site_transient_remember()site_transient_forget()
每个函数都会检查回调的响应是否为 WP_Error 对象,以确保您不会长时间缓存临时错误。PHP 异常也不会被缓存。
cache_remember()
从对象缓存中获取值,如果不存在,则运行给定的回调以生成和缓存值。
参数
- (string) $key
- 缓存键。
- (callable) $callback
- 用于生成和缓存值的回调。
- (string) $group
- 可选。缓存组。默认为空。
- (int) $expire
- 可选。缓存条目应在多少秒后过期。默认为 0(尽可能长时间)。
示例
use function Helick\CacheHelpers\cache_remember; function get_latest_posts() { return cache_remember('latest', function () { return new WP_Query([ 'posts_per_page' => 5, 'orderby' => 'post_date', 'order' => 'desc', ]); }, 'posts', HOUR_IN_SECONDS); }
cache_forget()
从对象缓存中获取并随后删除一个值。
参数
- (string) $key
- 缓存键。
- (string) $group
- 可选。缓存组。默认为空。
- (mixed) $default
- 可选。如果给定的键不在对象缓存中,则返回的默认值。默认为 null。
示例
use function Helick\CacheHelpers\cache_forget; function display_error_message() { $error_message = cache_forget('form_errors', 'my-cache-group', false); if ($error_message) { echo 'An error occurred: ' . $error_message; } }
transient_remember()
如果不存在,则从暂存中获取值,然后运行给定的回调以生成和缓存值。
参数
- (string) $key
- 缓存键。
- (callable) $callback
- 用于生成和缓存值的回调。
- (int) $expire
- 可选。缓存条目应在多少秒后过期。默认为 0(尽可能长时间)。
示例
use function Helick\CacheHelpers\transient_remember; function get_tweets() { $user_id = get_current_user_id(); $key = 'latest_tweets_' . $user_id; return transient_remember($key, function () use ($user_id) { return get_latest_tweets_for_user($user_id); }, 15 * MINUTE_IN_SECONDS); }
transient_forget()
从暂存中获取并随后删除一个值。
参数
- (string) $key
- 缓存键。
- (mixed) $default
- 可选。如果给定的键不在暂存中,则返回的默认值。默认为 null。
use function Helick\CacheHelpers\transient_forget; function display_error_message() { $error_message = transient_forget('form_errors', false); if ($error_message) { echo 'An error occurred: ' . $error_message; } }
site_transient_remember()
如果不存在,则从暂存中获取值,然后运行给定的回调以生成和缓存值。
此函数与 transient_remember() 具有相同的参数和行为,但在使用 WordPress 多站点时在网络范围内工作。
参数
- (string) $key
- 缓存键。
- (mixed) $default
- 可选。如果给定的键不在暂存中,则返回的默认值。默认为 null。
use function Helick\CacheHelpers\site_transient_remember; function get_tweets() { $user_id = get_current_user_id(); $key = 'latest_tweets_' . $user_id; return site_transient_remember($key, function () use ($user_id) { return get_latest_tweets_for_user($user_id); }, 15 * MINUTE_IN_SECONDS); }
site_transient_forget()
从站点暂存中获取并随后删除一个值。
此函数与 transient_forget() 具有相同的参数和行为,但在使用 WordPress 多站点时在网络范围内工作。
参数
- (string) $key
- 缓存键。
- (mixed) $default
- 可选。如果给定的键不在暂存中,则返回的默认值。默认为 null。
use function Helick\CacheHelpers\site_transient_forget; function display_error_message() { $error_message = site_transient_forget('form_errors', false); if ($error_message) { echo 'An error occurred: ' . $error_message; } }
贡献
请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT 以获取详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件 evgenii@helick.io 联系我们,而不是使用问题跟踪器。
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。