PHPackages                             guentur/cache-wrapper - 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. guentur/cache-wrapper

ActiveMagento2-module[Caching](/categories/caching)

guentur/cache-wrapper
=====================

Preference for Magento cache module. You can obtain data from cache, but if it isn't in cache, CacheWrapper module save it to the cache automaticaly and then convey you the data from cache

1.2.0(3y ago)18CC0-1.0PHPPHP ~7.3.0||~7.4.0

Since Mar 17Pushed 3y ago1 watchersCompare

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

READMEChangelog (3)Dependencies (1)Versions (4)Used By (0)

Guentur\_CacheWrapper
=====================

[](#guentur_cachewrapper)

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

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

`composer require guentur/cache-wrapper`

`bin/magento module:enable Guentur_CacheWrapper`

Приступая к использованию
-------------------------

[](#приступая-к-использованию)

Для использования функционала модуля имплементируйте в конструктор таким образом:

```
    private $cache;

    public function __construct(
        \Guentur\CacheWrapper\App\CacheInterface $cache
    ) {
        $this->cache = $cache;
    }
```

Также модуль переопределяет preference для `Magento\Framework\App\CacheInterface`(смотрите в Guentur/CacheWrapperetc/di.xml), так что методы модуля можно вызывать из стандартного интерфейса.

Glossary
--------

[](#glossary)

- Идентификатор кеша - Уникален и используется для получения одной конкретной записи. Не должны сохраняться несколько записей под одним идентификатором.
- Теги кеша — это способ классификации записей кэша. Когда вы сохраняете кеш, вы можете установить массив тегов, которые будут применяться к этой записи. Затем вы сможете очистить все записи кеша, помеченные данным тегом (или тегами). Теги могут повторяться в разных *записях* кеша.

Чтобы указать к какому [типу кеша](https://devdocs.magento.com/guides/v2.4/config-guide/cli/config-cli-subcommands-cache.html#config-cli-subcommands-cache-clean-over)ваша запись пренадлежит - передайте при её сохранении тег, который определен в [классе типа кеша](https://developer.adobe.com/commerce/php/development/cache/partial/cache-type/#cache-type-model)

### Пример:

[](#пример)

Находим класс кеша по его идентификатору в конфигурации `cache.xml`:

```
...

        Page Cache
        Full page caching

```

Передаем тег из класса типа:

```
return $this->cache->getCached(
            'some_cache_key',
            function () {
                ...
                return $data;
            },
            [\Magento\PageCache\Model\Cache\Type::CACHE_TAG],
            86400
        );
```

Сохранение в кеш
----------------

[](#сохранение-в-кеш)

`saveToCache(string $index, array $data, array $cacheTags = [], $lifeTime = null): void`

- `string $index` - [Идентификатор кеша](#glossary). Используется для получения всех записей, сохраненных с одним идентификатором.
- `array $data` - Данные для сохранения.
- `string[] $cacheTags` - [Теги кеша](#glossary).
- `int $lifeTime = null` - Время жизни кеша.

Получение данных из кеша
------------------------

[](#получение-данных-из-кеша)

`getCached(string $index, callable $data, array $cacheTags = [], $lifeTime = null): array`

- `string $index` - [Идентификатор кеша](#glossary). Используется при получения данных.
- `callable $data` - [Анонимная функция](https://www.php.net/manual/ru/functions.anonymous.php), возвращает **массив** данных для сохранения.
- `string[] $cacheTags` - [Теги кеша](#glossary).
- `int $lifeTime = null` - Время жизни кеша.

### Если не не удалось достать данные из кеша:

[](#если-не-не-удалось-достать-данные-из-кеша)

Вызывается `callable $data` для получения данных, которые должны быть в кеше. Вызывается метод [`saveToCache()`](#%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-%D0%BA%D0%B5%D1%88) для сохранения данных. В нее передаются: `$index`; данные, возвращенные `callable $data`; `$cacheTags`

### Пример использования `getCached()`

[](#пример-использования-getcached)

```
$this->cache->getCached(
            'cache_key_index',
            function () use ($greaterThan) {
                return $this->discountTierCollectionFactory->create()
                    ->addFieldToFilter(self::DISCOUNT_PRODUCT_TYPE, $productTypeId)
                    ->addFieldToFilter(self::SOME_ATTRIBUTE, ["gt" => $greaterThan])
                    ->setOrder(self::DISCOUNT_MIN_QTY, Collection::SORT_ORDER_ASC)
                    ->getFirstItem()
                    ->getData();
            },
            ['cache_key_index' . $greaterThan]
        );
```

> Использование анонимной функции для передачи данных можно назвать оптимизацией.

Очищение кеша
-------------

[](#очищение-кеша)

`cleanWithMode(string $mode, array $tags = []): bool`

- `string $mode` - Режим удаления кеша. Подробнее можно прочитать в [документации Zend\_Cache](https://framework.zend.com/manual/1.10/en/zend.cache.theory.html)
- `string[] $cacheTags` - [Теги кеша](#glossary).

### Доступные режимы:

[](#доступные-режимы)

- `all` (default) =&gt; remove all cache entries ($tags is not used)
- `old` =&gt; remove too old cache entries ($tags is not used)
- `matchingTag` =&gt; remove cache entries matching all given tags ($tags can be an array of strings or a single string)
- `notMatchingTag` =&gt; remove cache entries not matching one of the given tags ($tags can be an array of strings or a single string)
- `matchingAnyTag` =&gt; remove cache entries matching any given tags ($tags can be an array of strings or a single string)

Заметки. Как работает кеш в Magento 2
-------------------------------------

[](#заметки-как-работает-кеш-в-magento-2)

Базовый класс для работы с кешем в Magento 2 - `Magento\Framework\Cache\Core` наследуется от `\Zend_Cache_Core`

@todo

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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 ~40 days

Total

3

Last Release

1443d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1048c1a432c73b59e98e56fba7bdabcd2bf620e08c2d52e64e7e8c2d25938a93?d=identicon)[guentur](/maintainers/guentur)

---

Top Contributors

[![guentur](https://avatars.githubusercontent.com/u/64845469?v=4)](https://github.com/guentur "guentur (33 commits)")

### Embed Badge

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

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

###  Alternatives

[lizardmedia/module-varnish-warmer

Varnish Cache Warmer Magento2 module by Lizard Media

6276.8k](/packages/lizardmedia-module-varnish-warmer)[vendic/module-optimize-cache-size

Magento 2 extension that reduces the number of cache keys by removing catalog\_product\_view\_id\_, catalog\_product\_view\_sku\_, catalog\_product\_view\_attribute\_set\_, catalog\_category\_view\_id\_ layout handles by default

3453.6k](/packages/vendic-module-optimize-cache-size)[litespeed/module-litemage

LiteMage Full Page Cache for LiteSpeed Web Server

3254.8k](/packages/litespeed-module-litemage)[redchamps/module-easy-cache-clean

Clean invalidated cache(s) easily in a Magento 2 store

2838.0k](/packages/redchamps-module-easy-cache-clean)[yireo/magento2-autoflushcache

2813.5k](/packages/yireo-magento2-autoflushcache)[graycore/magento2-graph-ql-cache

A Magento 2 module that modifies the built-in GraphQlCache FPC.

121.5k](/packages/graycore-magento2-graph-ql-cache)

PHPackages © 2026

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