<?php
 
namespace Atto\Cache;
 
 
/**
 
 * Cache Item
 
 *
 
 * @package   Atto
 
 *
 
 * @namespace Atto\Cache
 
 * @name      Atto\Cache\Item
 
 * @author    Andrei Alexandru Romila
 
 * @version   v1.0
 
 */
 
class Item {
 
    
 
    /**
 
     * Time to live 
 
     * 
 
     * @var integer Number of seconds
 
     */
 
    protected $timeToLive;
 
    
 
    /**
 
     * Creation timestamp
 
     * 
 
     * @var integer
 
     */
 
    protected $creation;
 
    
 
    /**
 
     * Any data to be stored
 
     * 
 
     * @var mixed
 
     */
 
    protected $data;
 
    
 
    /**
 
     * Cache Item constructor
 
     * 
 
     * @param mixed $data
 
     * @param integer $timeToLive In seconds
 
     */
 
    public function __construct($data, $timeToLive) {
 
        $this->data       = $data;
 
        $this->timeToLive = $timeToLive;
 
        $this->creation   = time();
 
    }
 
    
 
    /**
 
     * Returns the data stored
 
     * 
 
     * @return mixed
 
     */
 
    public function getData() {
 
        return $this->data;
 
    }
 
    
 
    /**
 
     * Indicates if the current Item has expired or not
 
     * 
 
     * @return boolean
 
     */
 
    public function expired() {
 
        if ($this->timeToLive < 1) {
 
            return false;
 
        }
 
        
 
        return ($this->creation + $this->timeToLive) < time();
 
    }
 
}
 
 
 |