PHPackages                             fi1a/cache - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. fi1a/cache

ActiveLibrary[Caching](/categories/caching)

fi1a/cache
==========

PHP библиотека реализующая кэш (cache)

1.0.6(3y ago)026MITPHPPHP ^7.3 || ^8

Since Dec 2Pushed 3y ago1 watchersCompare

[ Source](https://github.com/fi1a/cache)[ Packagist](https://packagist.org/packages/fi1a/cache)[ Docs](https://github.com/fi1a/cache)[ RSS](/packages/fi1a-cache/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (7)Dependencies (7)Versions (9)Used By (0)

PHP библиотека реализующая кэш (cache)
======================================

[](#php-библиотека-реализующая-кэш-cache)

[![Latest Version](https://camo.githubusercontent.com/e01daed2c07fe0250e94d55f4392ad79ae116ad86e6872113f00e8eb146c2827/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f666931612f63616368653f6c6162656c3d72656c65617365)](https://packagist.org/packages/fi1a/cache)[![Software License](https://camo.githubusercontent.com/a28a7609d22d217a811ab7352034ab9a316c66ff992459dadbfc44640a978f24/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f666931612f63616368653f7374796c653d666c61742d737175617265)](https://github.com/fi1a/cache/blob/master/LICENSE)[![PHP Version](https://camo.githubusercontent.com/d3af76d954783e83cbb97f7ef1c5b3a6cd5fdd5cdd5c21222aafc655f34cbe56/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f666931612f63616368653f7374796c653d666c61742d737175617265)](https://php.net)[![Coverage Status](https://camo.githubusercontent.com/0c967d746eb7f4fe28065a3b94d23faa207cd6f4a968535b20fce0310a87cf89/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d3130302532352d677265656e)](https://camo.githubusercontent.com/0c967d746eb7f4fe28065a3b94d23faa207cd6f4a968535b20fce0310a87cf89/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d3130302532352d677265656e)[![Total Downloads](https://camo.githubusercontent.com/338efa4c0e072e5f935ed3cab86e47b7afdd1a6d8f2af1f1c74db4b16e7efbc2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f666931612f63616368652e7376673f7374796c653d666c61742d73717561726526636f6c6f72423d6d656469756d76696f6c6574726564)](https://packagist.org/packages/fi1a/cache)[![Support mail](https://camo.githubusercontent.com/116fa0d447870a3a6c6c1f4b296c889707a6e30a69c2b28cbe8d0f6f5c3d4920/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d61696c2d737570706f7274253430666931612e72752d627269676874677265656e)](mailto:support@fi1a.ru)

PHP библиотека предоставляет классы и методы для реализации кэширования. Имеются адаптеры для различных механизмов кэширования.

Доступные адаптеры:

- `Fi1a\Cache\Adapters\FilesystemAdapter` - адаптер кэширования в файловой системе;
- `Fi1a\Cache\Adapters\MemoryAdapter` - адаптер кэширования в памяти;
- `Fi1a\Cache\Adapters\NullAdapter` - адаптер null.

Установка
---------

[](#установка)

Установить этот пакет можно как зависимость, используя Composer.

```
composer require fi1a/cache
```

Доступ к значениям и сохранение кэша
------------------------------------

[](#доступ-к-значениям-и-сохранение-кэша)

Для доступа к значениям кэша используется класс, реализующий интерфейс `Fi1a\Cache\CacheItemPoolInterface`. Он представляет собой логический репозиторий для всех значений кэша. Все кэшируемые элементы извлекаются как объекты `Fi1a\Cache\CacheItemInterface`.

```
use Fi1a\Cache\Adapters\FilesystemAdapter;
use Fi1a\Cache\CacheItemPool;
use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$cachePath = __DIR__ . '/runtime/cache';

if (!is_dir($cachePath)) {
    mkdir($cachePath, 0775, true);
}

$filesystem = new Filesystem(new LocalAdapter($cachePath));
$adapter = new FilesystemAdapter($filesystem->factoryFolder($cachePath));

$cache = new CacheItemPool($adapter, 'your/namespace');

$item = $cache->getItem('cache-key'); // Fi1a\Cache\CacheItemInterface
$item->get(); // null
$item->set('some-value');
$item->expiresAfter(10); // время жизни 10 секунд
$cache->save($item);

$item = $cache->getItem('cache-key'); // Fi1a\Cache\CacheItemInterface
$item->get(); // 'some-value'
```

Аргументы конструктора `Fi1a\Cache\CacheItemPoolInterface`:

МетодОписаниеAdapterInterface $adapterОбъект адаптер для хранения кэшаstring $namespace = ''Пространство имен для ключей кэшаint $defaultTtl = 0Время жизни по умолчанию для элемента кэшаМетоды `Fi1a\Cache\CacheItemPoolInterface` реализующего пулл элементов кэша:

МетодОписаниеgetItem($key, ?string $hash = null): CacheItemInterfaceВозвращает значениеgetItems(array $keys): arrayВозвращает значения ($keys = \[\['key1', 'hash1',\], \['key1', 'hash1',\],\])hasItem($key, ?string $hash = null): boolПроверяет наличие значенияdeleteItem($key): boolУдаляет значениеdeleteItems(array $keys): boolУдаляет значения ($keys = \['key1', 'key2', 'key3',\])clear(): boolОчищаетsave(CacheItemInterface $item): boolСохраняет значениеsaveDeferred(CacheItemInterface $item): boolОтложенное сохранения значенияcommit(): boolВыполняет отложенное сохранениеЗначения кэша
-------------

[](#значения-кэша)

`Fi1a\Cache\CacheItemInterface` определяет элемент, используемый в системе кэширования. Объект реализующий интерфейс `Fi1a\Cache\CacheItemInterface` создается классом `Fi1a\Cache\CacheItemPoolInterface`, который отвечает за все необходимые настройки, а также связывает объект с уникальным ключом.

Получить один элемент кэша:

Если нет элемента кэша с ключом 'cache-key', будет возвращен новый элемент кэша.

```
use Fi1a\Cache\Adapters\FilesystemAdapter;
use Fi1a\Cache\CacheItemPool;
use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$cachePath = __DIR__ . '/runtime/cache';

if (!is_dir($cachePath)) {
    mkdir($cachePath, 0775, true);
}

$filesystem = new Filesystem(new LocalAdapter($cachePath));
$adapter = new FilesystemAdapter($filesystem->factoryFolder($cachePath));

$cache = new CacheItemPool($adapter, 'your/namespace');

$item = $cache->getItem('cache-key'); // Fi1a\Cache\CacheItemInterface
```

Получить несколько элементов кэша:

В случае отсутствия какого либо элемента кэша с определенным ключом, будет возвращен новый элемент кэша.

```
use Fi1a\Cache\Adapters\FilesystemAdapter;
use Fi1a\Cache\CacheItemPool;
use Fi1a\Filesystem\Adapters\LocalAdapter;
use Fi1a\Filesystem\Filesystem;

$cachePath = __DIR__ . '/runtime/cache';

if (!is_dir($cachePath)) {
    mkdir($cachePath, 0775, true);
}

$filesystem = new Filesystem(new LocalAdapter($cachePath));
$adapter = new FilesystemAdapter($filesystem->factoryFolder($cachePath));
$cache = new CacheItemPool($adapter, 'your/namespace');
$items = $cache->getItems([['cache-key-1'], ['cache-key-2', 'hash2']]); // Fi1a\Cache\CacheItemInterface[]
```

Методы интерфейса `Fi1a\Cache\CacheItemInterface` реализующего элемент кэша:

МетодОписаниеgetKey()Возвращает ключget()Возвращает значениеisHit(): boolВозвращает true, если значение извлеченоset($value)Устанавливает значениеsetHash(?string $hash = null)Установить хеш значенияgetHash(): ?stringВозвращает хеш значенияexpiresAt(?DateTimeInterface $expiration)Истечет в переданное времяexpiresAfter($time)Истекает через переданное времяgetExpire()Возвращает когда закончится срок жизниАдаптер кэширования в файловой системе
--------------------------------------

[](#адаптер-кэширования-в-файловой-системе)

Для использования кэширования в файловой системе, следует передать объект `Fi1a\Cache\Adapters\FilesystemAdapter`в конструктор класса `Fi1a\Cache\CacheItemPool`:

```
use Fi1a\Cache\Adapters\FilesystemAdapter;
use Fi1a\Cache\CacheItemPool;

$adapter = new FilesystemAdapter(__DIR__ . '/runtime/cache');
$cache = new CacheItemPool($adapter, 'your/namespace');
```

Класс `Fi1a\Cache\Adapters\FilesystemAdapter` в качесве аргумента, конструктор принимает путь до папки, где будут расположены файлы кэша.

Адаптер кэширования в памяти
----------------------------

[](#адаптер-кэширования-в-памяти)

Иногда нужно хранить кэш только на момент выполнения, а по завершению его удалять. Для этого можно использовать адаптер кэширования в памяти `Fi1a\Cache\Adapters\MemoryAdapter`.

```
use Fi1a\Cache\Adapters\MemoryAdapter;
use Fi1a\Cache\CacheItemPool;

$adapter = new MemoryAdapter();
$cache = new CacheItemPool($adapter, 'your/namespace');
$items = $cache->getItems([['cache-key-1'], ['cache-key-2', 'hash2']]); // Fi1a\Cache\CacheItemInterface[]
```

Адаптер null
------------

[](#адаптер-null)

Адаптер null представляет собой нейтральное, «бездейственное» поведение. Можно использовать в логике, когда кэширование поддерживается, но оно на данный момент не нужно.

```
use Fi1a\Cache\Adapters\NullAdapter;
use Fi1a\Cache\CacheItemPool;

$adapter = new NullAdapter();
$cache = new CacheItemPool($adapter, 'your/namespace');
$items = $cache->getItems([['cache-key-1'], ['cache-key-2', 'hash2']]); // Fi1a\Cache\CacheItemInterface[]
```

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~11 days

Recently: every ~19 days

Total

8

Last Release

1183d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d4f26c1adaa632741fadf55b1328cbd22ac91282aecfae2027d105df0ddedee4?d=identicon)[fi1a](/maintainers/fi1a)

---

Tags

cachecache-adapterphp

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/fi1a-cache/health.svg)

```
[![Health](https://phpackages.com/badges/fi1a-cache/health.svg)](https://phpackages.com/packages/fi1a-cache)
```

###  Alternatives

[predis/predis

A flexible and feature-complete Redis/Valkey client for PHP.

7.8k305.7M2.4k](/packages/predis-predis)[snc/redis-bundle

A Redis bundle for Symfony

1.0k39.4M67](/packages/snc-redis-bundle)[react/cache

Async, Promise-based cache interface for ReactPHP

444112.4M40](/packages/react-cache)[wp-media/wp-rocket

Performance optimization plugin for WordPress

7431.3M3](/packages/wp-media-wp-rocket)[illuminate/cache

The Illuminate Cache package.

12835.6M1.4k](/packages/illuminate-cache)[colinmollenhour/php-redis-session-abstract

A Redis-based session handler with optimistic locking

6325.6M14](/packages/colinmollenhour-php-redis-session-abstract)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
