Search by

phpsoftbox / cache

inspector-who

Cache component (PSR-6/PSR-16) for the PhpSoftBox framework

Package info

github.com/phpsoftbox/cache

pkg:composer/phpsoftbox/cache

Statistics

Installs: 255

Dependents: 5

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-09-29 10:23 UTC

This package is auto-updated.

Last update: 2026-09-29 11:50:46 UTC


README

About

phpsoftbox/cache — компонент кеширования для PhpSoftBox.

Ключевые свойства:

  • основной сервис для DI: PhpSoftBox\Cache\Cache
  • несколько сторов (stores) по имени: default, files, redis и т.д.
  • расширяемые драйверы через DriverFactoryInterface
  • поддержка PSR-16 и PSR-6 поверх одного драйвера стора
  • namespace стора и вложенные namespace; clear() очищает только свой namespace
  • контекстный namespace (например, изоляция арендаторов) через Cache::setContextNamespace()

Установка и требования

  • PHP ^8.5 (см. composer.json)
  • Установите пакет: composer require phpsoftbox/cache
  • Опциональные расширения/сервисы для драйверов: ext-redis, ext-memcached, ext-pdo (доступ к БД для PDO).

Quick Start

Без DI

use PhpSoftBox\Cache\Configurator\CacheBuilder;

$config = [
    'default' => 'default',
    'stores' => [
        'default' => [
            'driver' => 'array',
            'namespace' => 'app',
            'default_ttl' => 60,
        ],
    ],
];

$cache = CacheBuilder::fromConfig($config);

$cache->store()->set('foo', 'bar', 30);

Через DI

См. пример для PHP-DI в документации: docs/04-di.md.

Важное о семантике

  • TTL 0 и отрицательный TTL (и expiresAt в прошлом для PSR-6) удаляют запись.
  • Ключи PSR-16 и PSR-6 не могут содержать {}()/\@:; : — разделитель namespace.
  • clear() стора с namespace очищает только этот namespace (и вложенные). Store без namespace очищает всё хранилище драйвера: для Redis — FLUSHDB текущей базы, для Memcached — весь сервер. Для Redis/Memcached всегда задавайте namespace. Подробнее: docs/03-configuration.md.

CLI

Пакет регистрирует команду cache:prune, если приложение использует phpsoftbox/cli-app и package command discovery:

php psb cache:prune
php psb cache:prune --store=default --tmp-max-age-hours=24 --max-age-days=30

Команда удаляет expired-записи, битые cache-файлы и старые временные файлы. Permanent-записи без TTL удаляются только при явном --max-age-days.

Оглавление