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

ActiveLibrary[Caching](/categories/caching)

uspdev/cache
============

Library to connect to cache server

1.0.0(5y ago)26.4k↑253.1%3[2 issues](https://github.com/uspdev/cache/issues)[1 PRs](https://github.com/uspdev/cache/pulls)2GPL-3.0-or-laterPHPPHP &gt;=7.0

Since Aug 4Pushed 2y ago9 watchersCompare

[ Source](https://github.com/uspdev/cache)[ Packagist](https://packagist.org/packages/uspdev/cache)[ Docs](https://github.com/uspdev/cache)[ RSS](/packages/uspdev-cache/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (10)DependenciesVersions (16)Used By (2)

Cache
=====

[](#cache)

Biblioteca que cacheia resultados de métodos, geralmente consultas a banco de dados. Esta biblioteca funciona como um conector para o backend memcached. O servidor roda na máquina local.

Pode ser usado em métodos de classes instanciadas e em métodos estáticos.

Os dados ficam guardados no cache em função dos parâmetros passados para o método. Mudando um parâmetro é feito um novo cache.

Por padrão os caches expiram depois de 4 horas ou reiniciando o servidor memcached.

Por padrão dados menores que 32 bytes não serão cacheados.

Requisitos
----------

[](#requisitos)

- PHP &gt; 7.0
- memcached
- php-memcached

Instalação e configuração
-------------------------

[](#instalação-e-configuração)

### Instalação do servidor memcached

[](#instalação-do-servidor-memcached)

- No ubuntu 1804, debian 9, debian 10: para instalar o memcached use `apt install memcached`
- Acrescente no `/etc/memcached.conf` a linha `I = 5M` para aumentar para 5MB o tamanho de cada objeto ou outro valor que achar conveniente
- O memcached (no ubuntu) vem configurado para utilizar cerca de 64MB de RAM (não é um limite rígido). Caso seu servidor suporte e tenha demanda, mude no arquivo de configuração `-m 128` para dobrar o valor padrão
- Reinicie o serviço `service memcached restart`

OBS.: Ferramentas para linha de comando podem ser obtidas no pacote libmemcached-tools.

### Instalação da biblioteca

[](#instalação-da-biblioteca)

- Para ubuntu 1804, debian 9 ou debian 10 use `apt install php-memcached`
- reinicie o apache `service apache2 reload`
- Coloque a biblioteca como dependência `composer require uspdev/cache`

Utilização
----------

[](#utilização)

### Objetos instanciados

[](#objetos-instanciados)

Caso típico de uma consulta ao BD:

```
$pessoa = new Pessoa();
$lista = $pessoa->lista('nome');
```

Usando o cache, a consulta fica assim:

```
use Uspdev\Cache\Cache;

$pessoa = new Pessoa();
$cache = new Cache($pessoa);
$lista = $cache->getCached('lista',['nome']);
```

ou

```
$lista = $cache->getCached('lista','nome');
```

Isso quer dizer que se o método pessoa-&gt;Lista() aceitar mais de um parâmetro você pode passar a lista de parâmetros como array que o cache vai transformar em uma lista de argumentos.

### Métodos estáticos

[](#métodos-estáticos)

Se o método for estático fica assim:

```
use Uspdev\Cache\Cache;

$cache = new Cache();
$lista = $cache->getCached('Pessoa::lista',['nome']);
```

### Outros métodos

[](#outros-métodos)

Para ver algumas informações úteis sobre o cache use

```
$status = $cache->status();
```

Caso sua aplicação tenha alterado o conteúdo de uma consulta cacheada, você deve invalidar o cache para não receber dados obsoletos.

```
$status = $cache->flush();
```

Testes
------

[](#testes)

Rode alguns testes para ver o funcionamento.

```
php test/runtests.php
```

Parâmetros de configuração
--------------------------

[](#parâmetros-de-configuração)

Se você não tem o servidor memcached disponível num projeto que utiliza cache, você pode desabilitar o cache completamente de forma a poder continuar usando o projeto.

Em ambiente de desenvolvimento também pode ser desejável ter o cache desabilitado.

Para desabilitar o cache, defina a variável de ambiente ou a constante abaixo.

```
putenv('USPDEV_CACHE_DISABLE=1');
```

ou

```
define('USPDEV_CACHE_DISABLE', true);
```

Dessa forma a biblioteca de cache vai fazer apenas um bypass das consultar que passarem por ela.

O uso de **variáveis de ambiente** será preferível ao invés de usar constantes, que poderá ser removido no futuro.

Para alterar o tempo de expiração há duas formas:

- por variável de ambiente (antes de instanciar):

```
putenv('USPDEV_CACHE_EXPIRY=tempo_em_segundos');
```

- setando diretamente (depois de instanciar):

```
$cache->expiry = tempo_em_segundos;
```

Se o tempo de expiração for 0, o cache nunca vai expirar.

Você pode definir a partir de qual tamanho de dados o cache vai ser utilizado. O valor padrão são 32 bytes para poder excluir retornos vazios e algumas mensagens de erro. Se quiser modificar esse tamanho use:

```
putenv('USPDEV_CACHE_SMALL=tamanho_em_bytes');
```

ou

```
$cache->small = tamanho_em_bytes;
```

###  Health Score

30

—

LowBetter than 61% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 91.3% 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 ~47 days

Recently: every ~95 days

Total

14

Last Release

1958d ago

Major Versions

0.7.2 → 1.0.02021-04-07

### Community

Maintainers

![](https://www.gravatar.com/avatar/8a59480189a3ba1aa8355cb434880695569433f5d1c9e375e8238d5ff1a56beb?d=identicon)[uspdev](/maintainers/uspdev)

---

Top Contributors

[![masakik](https://avatars.githubusercontent.com/u/986915?v=4)](https://github.com/masakik "masakik (42 commits)")[![thiagogomesverissimo](https://avatars.githubusercontent.com/u/908508?v=4)](https://github.com/thiagogomesverissimo "thiagogomesverissimo (4 commits)")

---

Tags

hacktoberfest

### Embed Badge

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

```
[![Health](https://phpackages.com/badges/uspdev-cache/health.svg)](https://phpackages.com/packages/uspdev-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)
