felixarntz/wp-psr-cache

WordPress 的对象缓存实现,作为 PSR-6 和 PSR-16 缓存库的适配器。

安装: 215

依赖: 0

建议: 0

安全性: 0

星标: 33

关注者: 4

分支: 4

开放问题: 2

类型:wordpress-muplugin

dev-master 2018-04-02 10:30 UTC

This package is auto-updated.

Last update: 2024-09-06 09:59:56 UTC


README

Build Status All Contributors Code Climate Test Coverage Latest Stable Version License

WP PSR Cache

WordPress 的对象缓存实现,作为 PSR-6 和 PSR-16 缓存库的适配器。

PSR-6 和 PSR-16 是什么意思?

PSR-6PSR-16 是由 PHP-FIG 组织制定的标准。这些标准在所有类型的 PHP 项目中普遍使用(不幸的是,WordPress 是一个例外),由于这个库充当适配器,现在您可以使用任何兼容的缓存库与 WordPress 一起使用。流行的例子包括 Symfony Cache ComponentStash

功能

  • 可以使用任何 PSR-6 或 PSR-16 缓存实现
  • 可以单独指定持久和非持久缓存实现
  • 支持一次性读取/写入/删除多个缓存键
  • 只有当值不在非持久缓存中时才检查持久缓存
  • 完全支持多站点,包括站点和网络切换
  • 允许注册更细粒度的缓存实现以控制每个缓存组

如何安装

使用 Composer(例如通过使用 Bedrock)管理您的项目时,需要将此库作为依赖项。您还必须安装实际的 PSR-6PSR-16 缓存实现。

安装后,您需要将 includes/object-cache.php 文件移动到您的 wp-content 目录中。如果您愿意,也可以通过向您的项目 composer.json 中添加以下内容来自动化此过程:

	"scripts": {
		"post-install-cmd": [
			"cp -rp web/app/mu-plugins/wp-psr-cache/includes/object-cache.php web/app/object-cache.php"
		]
	}

然后,将 object-cache.php 文件中的内联注释替换为您希望使用的类的实际实例化。您需要提供两个实现,一个用于持久缓存,另一个用于非持久缓存。

为了避免多个 WordPress 安装访问相同的缓存服务时的冲突,建议在您的 wp-config.php 文件中定义一个唯一的 WP_CACHE_KEY_PREFIX 常量。

示例

以下示例使用 symfony/cache 库,因此您必须在 composer.json 中要求它。然后,它使用该库的 Memcached 实现作为持久缓存以及其数组存储作为非持久缓存。

<?php
/**
 * Object cache drop-in
 *
 * @package LeavesAndLove\WpPsrCache
 * @license GNU General Public License, version 2
 * @link    https://github.com/felixarntz/wp-psr-cache
 */

use LeavesAndLove\WpPsrCache\ObjectCacheService;
use Symfony\Component\Cache\Simple\MemcachedCache;
use Symfony\Component\Cache\Simple\ArrayCache;

defined( 'ABSPATH' ) || exit;

ObjectCacheService::loadApi();

/**
 * Defines and thus starts the object cache.
 *
 * @since 1.0.0
 */
function wp_psr_start_cache() {
	$memcached = new Memcached();
	$memcached->addServer( '127.0.0.1', 11211, 20 );

	wp_cache_start( new MemcachedCache( $memcached ), new ArrayCache() );
}

wp_psr_start_cache();

如果您希望有更细粒度的控制并且使用多个持久和非持久缓存,可以使用 LeavesAndLove\WpPsrCache\CacheSelector\CacheSelector 接口注册额外的缓存适配器。可以通过 wp_object_cache()->getSelector() 轻松获取对象缓存使用的实现。

要求

  • PHP >= 7.0

贡献者

感谢以下这些可爱的人 (emoji key)

此项目遵循 all-contributors 规范。欢迎任何形式的贡献!