helick/cache-helpers

WordPress 对象缓存和暂存辅助工具

v1.1.0 2019-07-31 17:07 UTC

This package is auto-updated.

Last update: 2024-08-29 05:07:00 UTC


README

WordPress 对象缓存和暂存辅助工具。

Latest Version on Packagist Total Downloads Software License Quality Score

要求

在继续之前,请确保已安装所有依赖项

安装

通过 Composer

$ composer require helick/cache-helpers

用法

此软件包为 WordPress 提供以下功能

每个函数都会检查回调的响应是否为 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;
    }
}

贡献

请参阅 CONTRIBUTINGCODE_OF_CONDUCT 以获取详细信息。

安全

如果您发现任何安全相关的问题,请通过电子邮件 evgenii@helick.io 联系我们,而不是使用问题跟踪器。

鸣谢

许可

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