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 1w 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

22

—

LowBetter than 21% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity47

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

1275d 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

[iazaran/smart-cache

Smart Cache is a caching optimization package designed to enhance the way your Laravel application handles data caching. It intelligently manages large data sets by compressing, chunking, or applying other optimization strategies to keep your application performant and efficient.

21114.2k](/packages/iazaran-smart-cache)[phpfastcache/phpssdb

PHP SSDB Driver for phpFastCache

14736.9k1](/packages/phpfastcache-phpssdb)[rapidwebltd/rw-file-cache

RW File Cache is a PHP File-based Caching Library. Its syntax is designed to closely resemble the PHP memcache extension.

15196.8k7](/packages/rapidwebltd-rw-file-cache)[yuzuru-s/redis-recommend

Wrapping Redis's sorted set APIs for specializing recommending operations.

392.9k](/packages/yuzuru-s-redis-recommend)[ichhabrecht/intcache

Turn uncachable page objects into cacheable links

193.9k](/packages/ichhabrecht-intcache)

PHPackages © 2026

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