Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

56 Zeilen
1.2KB

  1. <?php
  2. namespace Framework\Cache\Driver;
  3. use Memcached;
  4. class MemcacheDriver implements Driver
  5. {
  6. private array $config = [];
  7. private Memcached $memcache;
  8. public function __construct(array $config)
  9. {
  10. $this->config = $config;
  11. $this->memcache = new Memcached();
  12. $this->memcache->addServer($config['host'], $config['port']);
  13. }
  14. public function has(string $key): bool
  15. {
  16. return $this->memcache->get($key) !== false;
  17. }
  18. public function get(string $key, mixed $default = null): mixed
  19. {
  20. if ($value = $this->memcache->get($key)) {
  21. return $value;
  22. }
  23. return $default;
  24. }
  25. public function put(string $key, mixed $value, int $seconds = null): static
  26. {
  27. if (!is_int($seconds)) {
  28. $seconds = (int) $this->config['seconds'];
  29. }
  30. $this->memcache->set($key, $value, time() + $seconds);
  31. return $this;
  32. }
  33. public function forget(string $key): static
  34. {
  35. $this->memcache->delete($key);
  36. return $this;
  37. }
  38. public function flush(): static
  39. {
  40. $this->memcache->flush();
  41. return $this;
  42. }
  43. }

Powered by TurnKey Linux.