onstuimig / cachetool-library

管理您的OPcache & APCu缓存

9.1.0 2024-08-20 14:05 UTC

This package is auto-updated.

Last update: 2024-09-20 14:42:48 UTC


README

Coverage Status Version Downloads

CacheTool Library 允许您操作 APCu、OPcache 和文件状态缓存。它将连接到 FastCGI 服务器(如 PHP-FPM)并对其缓存进行操作。

这是对 gordalina/cachetool 的仅库分支。

这有什么用?

  • 也许您想清除字节码缓存,而不重新加载 php-fpm 或使用 Web 端点。
  • 也许您想有一个处理缓存失效的 cron。
  • 也许您想从 PHP 中直接查看一些统计信息。
  • 还有更多...

注意,与 APCu 和 Opcache 不同,文件状态缓存是按进程而不是存储在共享内存中。这意味着运行 stat:clear 对 PHP-FPM 将仅影响响应请求的 FPM 工作进程,而不是整个池。有关文件状态缓存如何操作的更多信息,请参阅 Julien Pauli 的文章


## Usage

Add it as a dependency

```sh
composer require onstuimig/cachetool-library

创建实例

use CacheTool\Adapter\FastCGI;
use CacheTool\CacheTool;

$adapter = new FastCGI('127.0.0.1:9000');
$cache = CacheTool::factory($adapter, '/tmp');

您可以使用 apcuopcache 函数。

$cache->apcu_clear_cache();
$cache->opcache_reset();

代理

CacheTool 依赖于 Proxies 来提供功能。默认情况下,从工厂创建 CacheTool 实例时,所有代理都启用,包括 ApcuProxyOpcacheProxyPhpProxy。您可以像以下示例一样自定义或扩展它。

use CacheTool\Adapter\FastCGI;
use CacheTool\CacheTool;
use CacheTool\Proxy;

$adapter = new FastCGI('/var/run/php-fpm.sock');
$cache = new CacheTool();
$cache->setAdapter($adapter);
$cache->addProxy(new Proxy\ApcuProxy());
$cache->addProxy(new Proxy\PhpProxy());

测试

运行 composer install 后,运行 ./vendor/bin/phpunit

解决测试失败的问题

sslip.io

tests/Adapter/Http/FileGetContentsTesttests/Adapter/Http/SymfonyHttpClientTest 中的测试依赖于 sslip.io 来解析包含 IP 的主机名。为此,sslip.io 的域名服务器需要位于运行这些测试的主机配置的 DNS 服务器中,否则用于测试的类似 _.127.0.0.1.sslip.io 的主机名将无法解析。DNS 服务器的 IP 地址可以在 sslip.io 上找到,如何配置它们取决于用于运行测试的系统。

版本兼容性

许可证

CacheTool 采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE