项目作者: nazg-hack

项目描述 :
Nazg Cache Component For HHVM/Hack
高级语言: Hack
项目地址: git://github.com/nazg-hack/hcache.git
创建时间: 2018-03-28T23:48:45Z
项目社区:https://github.com/nazg-hack/hcache

开源协议:MIT License

下载


Nazg\HCache

Build Status

Installation

  1. $ composer require nazg/hcache

Usage

supported apc, memcached, map, void, filesystem

Using the CacheManager

  1. <?hh
  2. use Nazg\HCache\Element;
  3. use Nazg\HCache\CacheManager;
  4. $manager = new CacheManager();
  5. $cache = $manager->createCache('memcached');
  6. $mc = new \Memcached('mc');
  7. $mc->addServers([['127.0.0.1', 11211]]);
  8. $cache->setMemcached($mc);
  9. $cache->createCache('map')?->save('cache', new Element('testing', 0));
cache name cache driver
apc \Nazg\HCache\Driver\ApcCache
void \Nazg\HCache\Driver\VoidCache
map \Nazg\HCache\Driver\MapCache
file \Nazg\HCache\Driver\FileSystemCache
memcached \Nazg\HCache\Driver\MemcachedCache
redis \Nazg\HCache\Driver\RedisCache

Cache Usage

Retrieving Item From The Cache

  1. <?hh
  2. <<__Override>>
  3. public function fetch(string $id): mixed {
  4. }

Checking For Item Existence

  1. <?hh
  2. <<__Override>>
  3. public function contains(string $id): bool {
  4. }

Storing Item In The Cache

  1. <?hh
  2. <<__Override>>
  3. public function save(string $id, Element $element): bool {
  4. }

Removing Items From The Cache

remove item

  1. <?hh
  2. <<__Override>>
  3. public function delete(string $id): bool {
  4. }

flush

  1. <?hh
  2. <<__Override>>
  3. public function flushAll(): bool {
  4. }

Adding Custom Cache Drivers

  1. <?hh
  2. use Nazg\HCache\CacheManager;
  3. use Nazg\HCache\CacheProvider;
  4. $manager = new CacheManager();
  5. $manager->addCache('null', () ==> new NullCache());
  6. $manager->createCache('null');
  7. class NullCache extends CacheProvider {
  8. <<__Override>>
  9. public function fetch(string $id): mixed {
  10. return;
  11. }
  12. <<__Override>>
  13. public function contains(string $id): bool {
  14. return false;
  15. }
  16. <<__Override>>
  17. public function save(string $id, Element $element): bool {
  18. return true;
  19. }
  20. <<__Override>>
  21. public function delete(string $id): bool {
  22. return true;
  23. }
  24. <<__Override>>
  25. public function flushAll(): bool {
  26. return true;
  27. }
  28. }

Using Cache Providers

example

FileSystemCache

  1. <?hh
  2. use Nazg\HCache\Element;
  3. use Nazg\HCache\Driver\FileSystemCache;
  4. $cache = new FileSystemCache();
  5. $cache->setDirectory(__DIR__ . '/../storages');
  6. $cache->save('file', new Element('testing', 0));
  7. $cache->fetch('file');
  8. $cache->contains('file')
  9. $cache->flushAll();

MapCache (memory)

  1. <?hh
  2. use Nazg\HCache\Element;
  3. use Nazg\HCache\Driver\MapCache;
  4. $cache = new MapCache();
  5. $cache->save('map', new Element('testing', 0));

MemcachedCache

  1. <?hh
  2. use Nazg\HCache\Element;
  3. use Nazg\HCache\Driver\MemcachedCache;
  4. $cache = new MemcachedCache();
  5. $mc = new \Memcached('mc');
  6. $mc->addServers([['127.0.0.1', 11211]]);
  7. $cache->setMemcached($mc);
  8. $cache->save("qwerty", new Element('testing:cache', 0));