<?php namespace ShortPixel\Model; use ShortPixel\ShortpixelLogger\ShortPixelLogger as Log; /* Model for storing cached data * * Use this in conjunction with cache controller, don't call it stand-alone. */ class CacheModel { protected $name; protected $value; protected $expires = HOUR_IN_SECONDS; // This is the expires, when saved without SetExpires! This value is not a representation of any expire time when loading something cache! protected $exists = false; public function __construct($name) { $this->name = $name; $this->load(); } /** Set the expiration of this item. In seconds * @param $time Expiration in Seconds */ public function setExpires($time) { $this->expires = $time; } public function setValue($value) { $this->value = $value; } public function exists() { return $this->exists; } public function getValue() { return $this->value; } public function getName() { return $this->name; } public function save() { $this->exists = set_transient($this->name, $this->value, $this->expires); } public function delete() { delete_transient($this->name); $this->exists = false; } protected function load() { $item = get_transient($this->name); if ($item !== false) { $this->value = $item; $this->exists = true; } } }